From 7c48269b2bde755e33c1e9ddecda1b2755b7d9b5 Mon Sep 17 00:00:00 2001 From: Steffen Winterfeldt Date: Sun, 28 Mar 2021 21:20:12 +0200 Subject: [PATCH] initial version --- COPYING | 674 +++ Makefile | 112 + README.adoc | 91 + config_vars | 18 + doc/building.adoc | 46 + doc/internals.adoc | 68 + doc/reference.adoc | 2226 ++++++++ doc/reference_template | 52 + doc/screen_01.png | Bin 0 -> 529927 bytes doc/testing.adoc | 74 + files/bar.fnt | Bin 0 -> 13122 bytes files/cd/boot/x86_64/efi | Bin 0 -> 3870720 bytes files/cd/boot/x86_64/loader/initrd | Bin 0 -> 54 bytes files/cd/boot/x86_64/loader/linux | 0 files/font1.psfu | Bin 0 -> 3177 bytes files/font2.psfu | Bin 0 -> 2899 bytes files/foo.fnt | Bin 0 -> 7116 bytes files/grub.cfg | 54 + files/katze_1024.jpg | Bin 0 -> 246834 bytes files/katze_800.jpg | Bin 0 -> 161234 bytes files/main.gs | 29 + files/main_01.gs | 34 + files/main_02.gs | 11 + files/main_03.gs | 62 + files/main_04.gs | 27 + gfxboot | 1 + gfxboot-compile.c | 1919 +++++++ gfxboot-font.c | 1544 ++++++ gfxboot-x11.c | 687 +++ gfxboot.c | 404 ++ gfxboot.h | 538 ++ gfxboot_array.c | 266 + gfxboot_canvas.c | 152 + gfxboot_context.c | 127 + gfxboot_debug.c | 820 +++ gfxboot_draw.c | 766 +++ gfxboot_font.c | 199 + gfxboot_grub.c | 511 ++ gfxboot_gstate.c | 102 + gfxboot_hash.c | 334 ++ gfxboot_jpeg.c | 950 ++++ gfxboot_lib.c | 316 ++ gfxboot_main.c | 507 ++ gfxboot_malloc.c | 140 + gfxboot_mem.c | 302 ++ gfxboot_num.c | 67 + gfxboot_obj.c | 570 ++ gfxboot_olist.c | 76 + gfxboot_prim.c | 4399 +++++++++++++++ git2log | 1041 ++++ grub_build | 39 + mk_grub_test | 75 + mk_reference | 247 + mk_vocabulary | 127 + mk_x11_test | 12 + patches/grub-2.04.diff | 256 + patches/grub_diff | 6 + run_tests | 201 + tests/0000_constants/basic.log.ref | 2832 ++++++++++ tests/0000_constants/code.log.ref | 141 + tests/0000_constants/code1.log.ref | 141 + tests/0000_constants/code2.log.ref | 141 + tests/0000_constants/main.gs | 42 + tests/0000_constants/mem.log.ref | 960 ++++ tests/0000_constants/screen.log.ref | 23 + tests/0000_constants/trace.log.ref | 2911 ++++++++++ tests/0001_prim_def_scalar/basic.log.ref | 26 + tests/0001_prim_def_scalar/code.log.ref | 11 + tests/0001_prim_def_scalar/code1.log.ref | 11 + tests/0001_prim_def_scalar/code2.log.ref | 11 + tests/0001_prim_def_scalar/main.gs | 4 + tests/0001_prim_def_scalar/mem.log.ref | 755 +++ tests/0001_prim_def_scalar/screen.log.ref | 23 + tests/0001_prim_def_scalar/trace.log.ref | 31 + tests/0002_prim_def_array/basic.log.ref | 73 + tests/0002_prim_def_array/code.log.ref | 17 + tests/0002_prim_def_array/code1.log.ref | 17 + tests/0002_prim_def_array/code2.log.ref | 17 + tests/0002_prim_def_array/main.gs | 4 + tests/0002_prim_def_array/mem.log.ref | 767 +++ tests/0002_prim_def_array/screen.log.ref | 23 + tests/0002_prim_def_array/trace.log.ref | 84 + tests/0003_prim_def_hash/basic.log.ref | 87 + tests/0003_prim_def_hash/code.log.ref | 18 + tests/0003_prim_def_hash/code1.log.ref | 18 + tests/0003_prim_def_hash/code2.log.ref | 18 + tests/0003_prim_def_hash/main.gs | 4 + tests/0003_prim_def_hash/mem.log.ref | 770 +++ tests/0003_prim_def_hash/screen.log.ref | 23 + tests/0003_prim_def_hash/trace.log.ref | 99 + tests/0004_prim_def_code/basic.log.ref | 40 + tests/0004_prim_def_code/code.log.ref | 13 + tests/0004_prim_def_code/code1.log.ref | 13 + tests/0004_prim_def_code/code2.log.ref | 13 + tests/0004_prim_def_code/main.gs | 4 + tests/0004_prim_def_code/mem.log.ref | 760 +++ tests/0004_prim_def_code/screen.log.ref | 23 + tests/0004_prim_def_code/trace.log.ref | 47 + tests/0005_if_ifelse/basic.log.ref | 674 +++ tests/0005_if_ifelse/code.log.ref | 93 + tests/0005_if_ifelse/code1.log.ref | 93 + tests/0005_if_ifelse/code2.log.ref | 93 + tests/0005_if_ifelse/main.gs | 11 + tests/0005_if_ifelse/mem.log.ref | 782 +++ tests/0005_if_ifelse/screen.log.ref | 23 + tests/0005_if_ifelse/trace.log.ref | 739 +++ tests/0006_repeat/basic.log.ref | 157 + tests/0006_repeat/code.log.ref | 27 + tests/0006_repeat/code1.log.ref | 27 + tests/0006_repeat/code2.log.ref | 27 + tests/0006_repeat/main.gs | 4 + tests/0006_repeat/mem.log.ref | 765 +++ tests/0006_repeat/screen.log.ref | 23 + tests/0006_repeat/trace.log.ref | 180 + tests/0007_for/basic.log.ref | 1007 ++++ tests/0007_for/code.log.ref | 49 + tests/0007_for/code1.log.ref | 49 + tests/0007_for/code2.log.ref | 49 + tests/0007_for/main.gs | 7 + tests/0007_for/mem.log.ref | 798 +++ tests/0007_for/screen.log.ref | 23 + tests/0007_for/trace.log.ref | 1063 ++++ tests/0008_forall/basic.log.ref | 629 +++ tests/0008_forall/code.log.ref | 41 + tests/0008_forall/code1.log.ref | 41 + tests/0008_forall/code2.log.ref | 41 + tests/0008_forall/main.gs | 5 + tests/0008_forall/mem.log.ref | 796 +++ tests/0008_forall/screen.log.ref | 23 + tests/0008_forall/trace.log.ref | 672 +++ tests/0009_func/basic.log.ref | 47 + tests/0009_func/code.log.ref | 14 + tests/0009_func/code1.log.ref | 14 + tests/0009_func/code2.log.ref | 14 + tests/0009_func/main.gs | 2 + tests/0009_func/mem.log.ref | 762 +++ tests/0009_func/screen.log.ref | 23 + tests/0009_func/trace.log.ref | 55 + tests/0010_exit/basic.log.ref | 405 ++ tests/0010_exit/code.log.ref | 61 + tests/0010_exit/code1.log.ref | 61 + tests/0010_exit/code2.log.ref | 61 + tests/0010_exit/main.gs | 9 + tests/0010_exit/mem.log.ref | 784 +++ tests/0010_exit/screen.log.ref | 23 + tests/0010_exit/trace.log.ref | 446 ++ tests/0011_return/basic.log.ref | 1370 +++++ tests/0011_return/code.log.ref | 92 + tests/0011_return/code1.log.ref | 92 + tests/0011_return/code2.log.ref | 92 + tests/0011_return/main.gs | 28 + tests/0011_return/mem.log.ref | 841 +++ tests/0011_return/screen.log.ref | 23 + tests/0011_return/trace.log.ref | 1457 +++++ tests/0012_get/basic.log.ref | 744 +++ tests/0012_get/code.log.ref | 71 + tests/0012_get/code1.log.ref | 71 + tests/0012_get/code2.log.ref | 71 + tests/0012_get/main.gs | 22 + tests/0012_get/mem.log.ref | 819 +++ tests/0012_get/screen.log.ref | 23 + tests/0012_get/trace.log.ref | 808 +++ tests/0013_put/basic.log.ref | 831 +++ tests/0013_put/code.log.ref | 77 + tests/0013_put/code1.log.ref | 77 + tests/0013_put/code2.log.ref | 77 + tests/0013_put/main.gs | 21 + tests/0013_put/mem.log.ref | 844 +++ tests/0013_put/screen.log.ref | 23 + tests/0013_put/trace.log.ref | 917 ++++ tests/0014_string/basic.log.ref | 24 + tests/0014_string/code.log.ref | 11 + tests/0014_string/code1.log.ref | 11 + tests/0014_string/code2.log.ref | 11 + tests/0014_string/main.gs | 2 + tests/0014_string/mem.log.ref | 759 +++ tests/0014_string/screen.log.ref | 23 + tests/0014_string/trace.log.ref | 29 + tests/0015_length/basic.log.ref | 236 + tests/0015_length/code.log.ref | 39 + tests/0015_length/code1.log.ref | 39 + tests/0015_length/code2.log.ref | 39 + tests/0015_length/main.gs | 11 + tests/0015_length/mem.log.ref | 800 +++ tests/0015_length/screen.log.ref | 23 + tests/0015_length/trace.log.ref | 269 + tests/0016_delete_hash/basic.log.ref | 635 +++ tests/0016_delete_hash/code.log.ref | 62 + tests/0016_delete_hash/code1.log.ref | 62 + tests/0016_delete_hash/code2.log.ref | 62 + tests/0016_delete_hash/main.gs | 22 + tests/0016_delete_hash/mem.log.ref | 791 +++ tests/0016_delete_hash/screen.log.ref | 23 + tests/0016_delete_hash/trace.log.ref | 692 +++ tests/0017_dup/basic.log.ref | 28 + tests/0017_dup/code.log.ref | 11 + tests/0017_dup/code1.log.ref | 11 + tests/0017_dup/code2.log.ref | 11 + tests/0017_dup/main.gs | 1 + tests/0017_dup/mem.log.ref | 756 +++ tests/0017_dup/screen.log.ref | 23 + tests/0017_dup/trace.log.ref | 33 + tests/0018_pop/basic.log.ref | 39 + tests/0018_pop/code.log.ref | 13 + tests/0018_pop/code1.log.ref | 13 + tests/0018_pop/code2.log.ref | 13 + tests/0018_pop/main.gs | 1 + tests/0018_pop/mem.log.ref | 756 +++ tests/0018_pop/screen.log.ref | 23 + tests/0018_pop/trace.log.ref | 46 + tests/0019_exch/basic.log.ref | 33 + tests/0019_exch/code.log.ref | 12 + tests/0019_exch/code1.log.ref | 12 + tests/0019_exch/code2.log.ref | 12 + tests/0019_exch/main.gs | 1 + tests/0019_exch/mem.log.ref | 758 +++ tests/0019_exch/screen.log.ref | 23 + tests/0019_exch/trace.log.ref | 39 + tests/0020_rot/basic.log.ref | 25 + tests/0020_rot/code.log.ref | 11 + tests/0020_rot/code1.log.ref | 11 + tests/0020_rot/code2.log.ref | 11 + tests/0020_rot/main.gs | 1 + tests/0020_rot/mem.log.ref | 756 +++ tests/0020_rot/screen.log.ref | 23 + tests/0020_rot/trace.log.ref | 30 + tests/0021_over/basic.log.ref | 27 + tests/0021_over/code.log.ref | 11 + tests/0021_over/code1.log.ref | 11 + tests/0021_over/code2.log.ref | 11 + tests/0021_over/main.gs | 1 + tests/0021_over/mem.log.ref | 757 +++ tests/0021_over/screen.log.ref | 23 + tests/0021_over/trace.log.ref | 32 + tests/0022_index/basic.log.ref | 100 + tests/0022_index/code.log.ref | 18 + tests/0022_index/code1.log.ref | 18 + tests/0022_index/code2.log.ref | 18 + tests/0022_index/main.gs | 5 + tests/0022_index/mem.log.ref | 766 +++ tests/0022_index/screen.log.ref | 23 + tests/0022_index/trace.log.ref | 112 + tests/0023_roll/basic.log.ref | 193 + tests/0023_roll/code.log.ref | 26 + tests/0023_roll/code1.log.ref | 26 + tests/0023_roll/code2.log.ref | 26 + tests/0023_roll/main.gs | 5 + tests/0023_roll/mem.log.ref | 767 +++ tests/0023_roll/screen.log.ref | 23 + tests/0023_roll/trace.log.ref | 213 + tests/0024_exec/basic.log.ref | 477 ++ tests/0024_exec/code.log.ref | 48 + tests/0024_exec/code1.log.ref | 48 + tests/0024_exec/code2.log.ref | 48 + tests/0024_exec/main.gs | 16 + tests/0024_exec/mem.log.ref | 811 +++ tests/0024_exec/screen.log.ref | 23 + tests/0024_exec/trace.log.ref | 525 ++ tests/0025_add/basic.log.ref | 785 +++ tests/0025_add/code.log.ref | 59 + tests/0025_add/code1.log.ref | 59 + tests/0025_add/code2.log.ref | 59 + tests/0025_add/main.gs | 14 + tests/0025_add/mem.log.ref | 832 +++ tests/0025_add/screen.log.ref | 23 + tests/0025_add/trace.log.ref | 846 +++ tests/0026_sub/basic.log.ref | 58 + tests/0026_sub/code.log.ref | 16 + tests/0026_sub/code1.log.ref | 16 + tests/0026_sub/code2.log.ref | 16 + tests/0026_sub/main.gs | 3 + tests/0026_sub/mem.log.ref | 758 +++ tests/0026_sub/screen.log.ref | 23 + tests/0026_sub/trace.log.ref | 68 + tests/0027_mul/basic.log.ref | 172 + tests/0027_mul/code.log.ref | 30 + tests/0027_mul/code1.log.ref | 30 + tests/0027_mul/code2.log.ref | 30 + tests/0027_mul/main.gs | 7 + tests/0027_mul/mem.log.ref | 769 +++ tests/0027_mul/screen.log.ref | 23 + tests/0027_mul/trace.log.ref | 194 + tests/0028_div/basic.log.ref | 1369 +++++ tests/0028_div/code.log.ref | 95 + tests/0028_div/code1.log.ref | 95 + tests/0028_div/code2.log.ref | 95 + tests/0028_div/main.gs | 26 + tests/0028_div/mem.log.ref | 824 +++ tests/0028_div/screen.log.ref | 23 + tests/0028_div/trace.log.ref | 1448 +++++ tests/0029_mod/basic.log.ref | 1369 +++++ tests/0029_mod/code.log.ref | 95 + tests/0029_mod/code1.log.ref | 95 + tests/0029_mod/code2.log.ref | 95 + tests/0029_mod/main.gs | 26 + tests/0029_mod/mem.log.ref | 824 +++ tests/0029_mod/screen.log.ref | 23 + tests/0029_mod/trace.log.ref | 1448 +++++ tests/0030_and/basic.log.ref | 172 + tests/0030_and/code.log.ref | 28 + tests/0030_and/code1.log.ref | 28 + tests/0030_and/code2.log.ref | 28 + tests/0030_and/main.gs | 7 + tests/0030_and/mem.log.ref | 768 +++ tests/0030_and/screen.log.ref | 23 + tests/0030_and/trace.log.ref | 194 + tests/0031_or/basic.log.ref | 172 + tests/0031_or/code.log.ref | 28 + tests/0031_or/code1.log.ref | 28 + tests/0031_or/code2.log.ref | 28 + tests/0031_or/main.gs | 7 + tests/0031_or/mem.log.ref | 768 +++ tests/0031_or/screen.log.ref | 23 + tests/0031_or/trace.log.ref | 194 + tests/0032_xor/basic.log.ref | 172 + tests/0032_xor/code.log.ref | 28 + tests/0032_xor/code1.log.ref | 28 + tests/0032_xor/code2.log.ref | 28 + tests/0032_xor/main.gs | 7 + tests/0032_xor/mem.log.ref | 768 +++ tests/0032_xor/screen.log.ref | 23 + tests/0032_xor/trace.log.ref | 194 + tests/0033_min/basic.log.ref | 139 + tests/0033_min/code.log.ref | 25 + tests/0033_min/code1.log.ref | 25 + tests/0033_min/code2.log.ref | 25 + tests/0033_min/main.gs | 6 + tests/0033_min/mem.log.ref | 766 +++ tests/0033_min/screen.log.ref | 23 + tests/0033_min/trace.log.ref | 158 + tests/0034_max/basic.log.ref | 139 + tests/0034_max/code.log.ref | 25 + tests/0034_max/code1.log.ref | 25 + tests/0034_max/code2.log.ref | 25 + tests/0034_max/main.gs | 6 + tests/0034_max/mem.log.ref | 766 +++ tests/0034_max/screen.log.ref | 23 + tests/0034_max/trace.log.ref | 158 + tests/0035_neg/basic.log.ref | 52 + tests/0035_neg/code.log.ref | 15 + tests/0035_neg/code1.log.ref | 15 + tests/0035_neg/code2.log.ref | 15 + tests/0035_neg/main.gs | 4 + tests/0035_neg/mem.log.ref | 760 +++ tests/0035_neg/screen.log.ref | 23 + tests/0035_neg/trace.log.ref | 61 + tests/0036_not/basic.log.ref | 52 + tests/0036_not/code.log.ref | 15 + tests/0036_not/code1.log.ref | 15 + tests/0036_not/code2.log.ref | 15 + tests/0036_not/main.gs | 4 + tests/0036_not/mem.log.ref | 760 +++ tests/0036_not/screen.log.ref | 23 + tests/0036_not/trace.log.ref | 61 + tests/0037_abs/basic.log.ref | 52 + tests/0037_abs/code.log.ref | 15 + tests/0037_abs/code1.log.ref | 15 + tests/0037_abs/code2.log.ref | 15 + tests/0037_abs/main.gs | 4 + tests/0037_abs/mem.log.ref | 760 +++ tests/0037_abs/screen.log.ref | 23 + tests/0037_abs/trace.log.ref | 61 + tests/0038_shl/basic.log.ref | 282 + tests/0038_shl/code.log.ref | 35 + tests/0038_shl/code1.log.ref | 35 + tests/0038_shl/code2.log.ref | 35 + tests/0038_shl/main.gs | 12 + tests/0038_shl/mem.log.ref | 779 +++ tests/0038_shl/screen.log.ref | 23 + tests/0038_shl/trace.log.ref | 311 ++ tests/0039_shr/basic.log.ref | 492 ++ tests/0039_shr/code.log.ref | 51 + tests/0039_shr/code1.log.ref | 51 + tests/0039_shr/code2.log.ref | 51 + tests/0039_shr/main.gs | 16 + tests/0039_shr/mem.log.ref | 792 +++ tests/0039_shr/screen.log.ref | 23 + tests/0039_shr/trace.log.ref | 533 ++ tests/0040_cmp/basic.log.ref | 1091 ++++ tests/0040_cmp/code.log.ref | 79 + tests/0040_cmp/code1.log.ref | 79 + tests/0040_cmp/code2.log.ref | 79 + tests/0040_cmp/main.gs | 20 + tests/0040_cmp/mem.log.ref | 815 +++ tests/0040_cmp/screen.log.ref | 23 + tests/0040_cmp/trace.log.ref | 1160 ++++ tests/0041_eq/basic.log.ref | 1091 ++++ tests/0041_eq/code.log.ref | 79 + tests/0041_eq/code1.log.ref | 79 + tests/0041_eq/code2.log.ref | 79 + tests/0041_eq/main.gs | 20 + tests/0041_eq/mem.log.ref | 814 +++ tests/0041_eq/screen.log.ref | 23 + tests/0041_eq/trace.log.ref | 1160 ++++ tests/0042_ne/basic.log.ref | 1091 ++++ tests/0042_ne/code.log.ref | 79 + tests/0042_ne/code1.log.ref | 79 + tests/0042_ne/code2.log.ref | 79 + tests/0042_ne/main.gs | 20 + tests/0042_ne/mem.log.ref | 814 +++ tests/0042_ne/screen.log.ref | 23 + tests/0042_ne/trace.log.ref | 1160 ++++ tests/0043_gt/basic.log.ref | 1091 ++++ tests/0043_gt/code.log.ref | 79 + tests/0043_gt/code1.log.ref | 79 + tests/0043_gt/code2.log.ref | 79 + tests/0043_gt/main.gs | 20 + tests/0043_gt/mem.log.ref | 814 +++ tests/0043_gt/screen.log.ref | 23 + tests/0043_gt/trace.log.ref | 1160 ++++ tests/0044_ge/basic.log.ref | 1091 ++++ tests/0044_ge/code.log.ref | 79 + tests/0044_ge/code1.log.ref | 79 + tests/0044_ge/code2.log.ref | 79 + tests/0044_ge/main.gs | 20 + tests/0044_ge/mem.log.ref | 814 +++ tests/0044_ge/screen.log.ref | 23 + tests/0044_ge/trace.log.ref | 1160 ++++ tests/0045_lt/basic.log.ref | 1091 ++++ tests/0045_lt/code.log.ref | 79 + tests/0045_lt/code1.log.ref | 79 + tests/0045_lt/code2.log.ref | 79 + tests/0045_lt/main.gs | 20 + tests/0045_lt/mem.log.ref | 814 +++ tests/0045_lt/screen.log.ref | 23 + tests/0045_lt/trace.log.ref | 1160 ++++ tests/0046_le/basic.log.ref | 1091 ++++ tests/0046_le/code.log.ref | 79 + tests/0046_le/code1.log.ref | 79 + tests/0046_le/code2.log.ref | 79 + tests/0046_le/main.gs | 20 + tests/0046_le/mem.log.ref | 814 +++ tests/0046_le/screen.log.ref | 23 + tests/0046_le/trace.log.ref | 1160 ++++ tests/0047_hash/basic.log.ref | 536 ++ tests/0047_hash/code.log.ref | 61 + tests/0047_hash/code1.log.ref | 61 + tests/0047_hash/code2.log.ref | 61 + tests/0047_hash/main.gs | 20 + tests/0047_hash/mem.log.ref | 804 +++ tests/0047_hash/screen.log.ref | 23 + tests/0047_hash/trace.log.ref | 592 ++ tests/0048_delete_array/basic.log.ref | 130 + tests/0048_delete_array/code.log.ref | 27 + tests/0048_delete_array/code1.log.ref | 27 + tests/0048_delete_array/code2.log.ref | 27 + tests/0048_delete_array/main.gs | 6 + tests/0048_delete_array/mem.log.ref | 761 +++ tests/0048_delete_array/screen.log.ref | 23 + tests/0048_delete_array/trace.log.ref | 151 + tests/0049_delete_string/basic.log.ref | 130 + tests/0049_delete_string/code.log.ref | 30 + tests/0049_delete_string/code1.log.ref | 30 + tests/0049_delete_string/code2.log.ref | 30 + tests/0049_delete_string/main.gs | 12 + tests/0049_delete_string/mem.log.ref | 774 +++ tests/0049_delete_string/screen.log.ref | 23 + tests/0049_delete_string/trace.log.ref | 154 + tests/0050_parent/basic.log.ref | 211 + tests/0050_parent/code.log.ref | 40 + tests/0050_parent/code1.log.ref | 38 + tests/0050_parent/code2.log.ref | 36 + tests/0050_parent/main.gs | 13 + tests/0050_parent/mem.log.ref | 789 +++ tests/0050_parent/screen.log.ref | 23 + tests/0050_parent/trace.log.ref | 241 + tests/0051_hash_parent/basic.log.ref | 400 ++ tests/0051_hash_parent/code.log.ref | 56 + tests/0051_hash_parent/code1.log.ref | 54 + tests/0051_hash_parent/code2.log.ref | 53 + tests/0051_hash_parent/main.gs | 21 + tests/0051_hash_parent/mem.log.ref | 799 +++ tests/0051_hash_parent/screen.log.ref | 23 + tests/0051_hash_parent/trace.log.ref | 447 ++ tests/0052_dict/basic.log.ref | 220 + tests/0052_dict/code.log.ref | 34 + tests/0052_dict/code1.log.ref | 34 + tests/0052_dict/code2.log.ref | 34 + tests/0052_dict/main.gs | 21 + tests/0052_dict/mem.log.ref | 788 +++ tests/0052_dict/screen.log.ref | 23 + tests/0052_dict/trace.log.ref | 248 + tests/0053_freeze/basic.log.ref | 215 + tests/0053_freeze/code.log.ref | 36 + tests/0053_freeze/code1.log.ref | 36 + tests/0053_freeze/code2.log.ref | 36 + tests/0053_freeze/main.gs | 11 + tests/0053_freeze/mem.log.ref | 794 +++ tests/0053_freeze/screen.log.ref | 23 + tests/0053_freeze/trace.log.ref | 245 + tests/0054_freeze_string/basic.log.ref | 65 + tests/0054_freeze_string/code.log.ref | 17 + tests/0054_freeze_string/code1.log.ref | 17 + tests/0054_freeze_string/code2.log.ref | 17 + tests/0054_freeze_string/main.gs | 4 + tests/0054_freeze_string/mem.log.ref | 766 +++ tests/0054_freeze_string/screen.log.ref | 23 + tests/0054_freeze_string/trace.log.ref | 76 + tests/0055_freeze_array/basic.log.ref | 85 + tests/0055_freeze_array/code.log.ref | 20 + tests/0055_freeze_array/code1.log.ref | 20 + tests/0055_freeze_array/code2.log.ref | 20 + tests/0055_freeze_array/main.gs | 4 + tests/0055_freeze_array/mem.log.ref | 768 +++ tests/0055_freeze_array/screen.log.ref | 23 + tests/0055_freeze_array/trace.log.ref | 99 + tests/0056_freeze_hash/basic.log.ref | 97 + tests/0056_freeze_hash/code.log.ref | 21 + tests/0056_freeze_hash/code1.log.ref | 21 + tests/0056_freeze_hash/code2.log.ref | 21 + tests/0056_freeze_hash/main.gs | 4 + tests/0056_freeze_hash/mem.log.ref | 772 +++ tests/0056_freeze_hash/screen.log.ref | 23 + tests/0056_freeze_hash/trace.log.ref | 112 + tests/0057_dict_nil/basic.log.ref | 151 + tests/0057_dict_nil/code.log.ref | 27 + tests/0057_dict_nil/code1.log.ref | 27 + tests/0057_dict_nil/code2.log.ref | 27 + tests/0057_dict_nil/main.gs | 16 + tests/0057_dict_nil/mem.log.ref | 772 +++ tests/0057_dict_nil/screen.log.ref | 23 + tests/0057_dict_nil/trace.log.ref | 172 + tests/0058_def_local/basic.log.ref | 144 + tests/0058_def_local/code.log.ref | 26 + tests/0058_def_local/code1.log.ref | 26 + tests/0058_def_local/code2.log.ref | 26 + tests/0058_def_local/main.gs | 16 + tests/0058_def_local/mem.log.ref | 774 +++ tests/0058_def_local/screen.log.ref | 23 + tests/0058_def_local/trace.log.ref | 164 + tests/0059_lineto/basic.log.ref | 4197 +++++++++++++++ tests/0059_lineto/code.log.ref | 225 + tests/0059_lineto/code1.log.ref | 225 + tests/0059_lineto/code2.log.ref | 222 + tests/0059_lineto/main.gs | 58 + tests/0059_lineto/mem.log.ref | 804 +++ tests/0059_lineto/screen.log.ref | 23 + tests/0059_lineto/trace.log.ref | 4785 +++++++++++++++++ tests/0060_constants2/basic.log.ref | 1049 ++++ tests/0060_constants2/code.log.ref | 100 + tests/0060_constants2/code1.log.ref | 100 + tests/0060_constants2/code2.log.ref | 100 + tests/0060_constants2/main.gs | 16 + tests/0060_constants2/mem.log.ref | 890 +++ tests/0060_constants2/screen.log.ref | 23 + tests/0060_constants2/trace.log.ref | 1092 ++++ tests/0061_def/basic.log.ref | 177 + tests/0061_def/code.log.ref | 30 + tests/0061_def/code1.log.ref | 30 + tests/0061_def/code2.log.ref | 30 + tests/0061_def/main.gs | 16 + tests/0061_def/mem.log.ref | 778 +++ tests/0061_def/screen.log.ref | 23 + tests/0061_def/trace.log.ref | 201 + tests/0062_ldef/basic.log.ref | 179 + tests/0062_ldef/code.log.ref | 30 + tests/0062_ldef/code1.log.ref | 30 + tests/0062_ldef/code2.log.ref | 30 + tests/0062_ldef/main.gs | 16 + tests/0062_ldef/mem.log.ref | 777 +++ tests/0062_ldef/screen.log.ref | 23 + tests/0062_ldef/trace.log.ref | 203 + tests/0063_gdef/basic.log.ref | 178 + tests/0063_gdef/code.log.ref | 30 + tests/0063_gdef/code1.log.ref | 30 + tests/0063_gdef/code2.log.ref | 30 + tests/0063_gdef/main.gs | 16 + tests/0063_gdef/mem.log.ref | 778 +++ tests/0063_gdef/screen.log.ref | 23 + tests/0063_gdef/trace.log.ref | 202 + tests/0064_method_get/basic.log.ref | 119 + tests/0064_method_get/code.log.ref | 23 + tests/0064_method_get/code1.log.ref | 23 + tests/0064_method_get/code2.log.ref | 23 + tests/0064_method_get/main.gs | 7 + tests/0064_method_get/mem.log.ref | 772 +++ tests/0064_method_get/screen.log.ref | 23 + tests/0064_method_get/trace.log.ref | 136 + tests/0065_method_set/basic.log.ref | 120 + tests/0065_method_set/code.log.ref | 24 + tests/0065_method_set/code1.log.ref | 24 + tests/0065_method_set/code2.log.ref | 24 + tests/0065_method_set/main.gs | 7 + tests/0065_method_set/mem.log.ref | 773 +++ tests/0065_method_set/screen.log.ref | 23 + tests/0065_method_set/trace.log.ref | 138 + tests/0066_inheritance/basic.log.ref | 605 +++ tests/0066_inheritance/code.log.ref | 64 + tests/0066_inheritance/code1.log.ref | 64 + tests/0066_inheritance/code2.log.ref | 60 + tests/0066_inheritance/main.gs | 27 + tests/0066_inheritance/mem.log.ref | 802 +++ tests/0066_inheritance/screen.log.ref | 23 + tests/0066_inheritance/trace.log.ref | 691 +++ tests/0067_class/basic.log.ref | 691 +++ tests/0067_class/code.log.ref | 74 + tests/0067_class/code1.log.ref | 74 + tests/0067_class/code2.log.ref | 70 + tests/0067_class/main.gs | 38 + tests/0067_class/mem.log.ref | 812 +++ tests/0067_class/screen.log.ref | 23 + tests/0067_class/trace.log.ref | 787 +++ tests/0068_utf8/basic.log.ref | 87 + tests/0068_utf8/code.log.ref | 25 + tests/0068_utf8/code1.log.ref | 25 + tests/0068_utf8/code2.log.ref | 23 + tests/0068_utf8/main.gs | 7 + tests/0068_utf8/mem.log.ref | 804 +++ tests/0068_utf8/screen.log.ref | 23 + tests/0068_utf8/trace.log.ref | 102 + tests/0069_hash_set_with_parent/basic.log.ref | 163 + tests/0069_hash_set_with_parent/code.log.ref | 33 + tests/0069_hash_set_with_parent/code1.log.ref | 33 + tests/0069_hash_set_with_parent/code2.log.ref | 32 + tests/0069_hash_set_with_parent/main.gs | 10 + tests/0069_hash_set_with_parent/mem.log.ref | 781 +++ .../0069_hash_set_with_parent/screen.log.ref | 23 + tests/0069_hash_set_with_parent/trace.log.ref | 189 + tests/0070_hash_del_with_parent/basic.log.ref | 155 + tests/0070_hash_del_with_parent/code.log.ref | 32 + tests/0070_hash_del_with_parent/code1.log.ref | 32 + tests/0070_hash_del_with_parent/code2.log.ref | 31 + tests/0070_hash_del_with_parent/main.gs | 10 + tests/0070_hash_del_with_parent/mem.log.ref | 776 +++ .../0070_hash_del_with_parent/screen.log.ref | 23 + tests/0070_hash_del_with_parent/trace.log.ref | 180 + tests/test_script | 26 + types.def | 39 + vocabulary.def | 95 + 629 files changed, 160422 insertions(+) create mode 100644 COPYING create mode 100644 Makefile create mode 100644 README.adoc create mode 100644 config_vars create mode 100644 doc/building.adoc create mode 100644 doc/internals.adoc create mode 100644 doc/reference.adoc create mode 100644 doc/reference_template create mode 100644 doc/screen_01.png create mode 100644 doc/testing.adoc create mode 100644 files/bar.fnt create mode 100644 files/cd/boot/x86_64/efi create mode 100644 files/cd/boot/x86_64/loader/initrd create mode 100644 files/cd/boot/x86_64/loader/linux create mode 100644 files/font1.psfu create mode 100644 files/font2.psfu create mode 100644 files/foo.fnt create mode 100644 files/grub.cfg create mode 100644 files/katze_1024.jpg create mode 100644 files/katze_800.jpg create mode 100644 files/main.gs create mode 100644 files/main_01.gs create mode 100644 files/main_02.gs create mode 100644 files/main_03.gs create mode 100644 files/main_04.gs create mode 120000 gfxboot create mode 100644 gfxboot-compile.c create mode 100644 gfxboot-font.c create mode 100644 gfxboot-x11.c create mode 100644 gfxboot.c create mode 100644 gfxboot.h create mode 100644 gfxboot_array.c create mode 100644 gfxboot_canvas.c create mode 100644 gfxboot_context.c create mode 100644 gfxboot_debug.c create mode 100644 gfxboot_draw.c create mode 100644 gfxboot_font.c create mode 100644 gfxboot_grub.c create mode 100644 gfxboot_gstate.c create mode 100644 gfxboot_hash.c create mode 100644 gfxboot_jpeg.c create mode 100644 gfxboot_lib.c create mode 100644 gfxboot_main.c create mode 100644 gfxboot_malloc.c create mode 100644 gfxboot_mem.c create mode 100644 gfxboot_num.c create mode 100644 gfxboot_obj.c create mode 100644 gfxboot_olist.c create mode 100644 gfxboot_prim.c create mode 100755 git2log create mode 100755 grub_build create mode 100755 mk_grub_test create mode 100755 mk_reference create mode 100755 mk_vocabulary create mode 100755 mk_x11_test create mode 100644 patches/grub-2.04.diff create mode 100755 patches/grub_diff create mode 100755 run_tests create mode 100644 tests/0000_constants/basic.log.ref create mode 100644 tests/0000_constants/code.log.ref create mode 100644 tests/0000_constants/code1.log.ref create mode 100644 tests/0000_constants/code2.log.ref create mode 100644 tests/0000_constants/main.gs create mode 100644 tests/0000_constants/mem.log.ref create mode 100644 tests/0000_constants/screen.log.ref create mode 100644 tests/0000_constants/trace.log.ref create mode 100644 tests/0001_prim_def_scalar/basic.log.ref create mode 100644 tests/0001_prim_def_scalar/code.log.ref create mode 100644 tests/0001_prim_def_scalar/code1.log.ref create mode 100644 tests/0001_prim_def_scalar/code2.log.ref create mode 100644 tests/0001_prim_def_scalar/main.gs create mode 100644 tests/0001_prim_def_scalar/mem.log.ref create mode 100644 tests/0001_prim_def_scalar/screen.log.ref create mode 100644 tests/0001_prim_def_scalar/trace.log.ref create mode 100644 tests/0002_prim_def_array/basic.log.ref create mode 100644 tests/0002_prim_def_array/code.log.ref create mode 100644 tests/0002_prim_def_array/code1.log.ref create mode 100644 tests/0002_prim_def_array/code2.log.ref create mode 100644 tests/0002_prim_def_array/main.gs create mode 100644 tests/0002_prim_def_array/mem.log.ref create mode 100644 tests/0002_prim_def_array/screen.log.ref create mode 100644 tests/0002_prim_def_array/trace.log.ref create mode 100644 tests/0003_prim_def_hash/basic.log.ref create mode 100644 tests/0003_prim_def_hash/code.log.ref create mode 100644 tests/0003_prim_def_hash/code1.log.ref create mode 100644 tests/0003_prim_def_hash/code2.log.ref create mode 100644 tests/0003_prim_def_hash/main.gs create mode 100644 tests/0003_prim_def_hash/mem.log.ref create mode 100644 tests/0003_prim_def_hash/screen.log.ref create mode 100644 tests/0003_prim_def_hash/trace.log.ref create mode 100644 tests/0004_prim_def_code/basic.log.ref create mode 100644 tests/0004_prim_def_code/code.log.ref create mode 100644 tests/0004_prim_def_code/code1.log.ref create mode 100644 tests/0004_prim_def_code/code2.log.ref create mode 100644 tests/0004_prim_def_code/main.gs create mode 100644 tests/0004_prim_def_code/mem.log.ref create mode 100644 tests/0004_prim_def_code/screen.log.ref create mode 100644 tests/0004_prim_def_code/trace.log.ref create mode 100644 tests/0005_if_ifelse/basic.log.ref create mode 100644 tests/0005_if_ifelse/code.log.ref create mode 100644 tests/0005_if_ifelse/code1.log.ref create mode 100644 tests/0005_if_ifelse/code2.log.ref create mode 100644 tests/0005_if_ifelse/main.gs create mode 100644 tests/0005_if_ifelse/mem.log.ref create mode 100644 tests/0005_if_ifelse/screen.log.ref create mode 100644 tests/0005_if_ifelse/trace.log.ref create mode 100644 tests/0006_repeat/basic.log.ref create mode 100644 tests/0006_repeat/code.log.ref create mode 100644 tests/0006_repeat/code1.log.ref create mode 100644 tests/0006_repeat/code2.log.ref create mode 100644 tests/0006_repeat/main.gs create mode 100644 tests/0006_repeat/mem.log.ref create mode 100644 tests/0006_repeat/screen.log.ref create mode 100644 tests/0006_repeat/trace.log.ref create mode 100644 tests/0007_for/basic.log.ref create mode 100644 tests/0007_for/code.log.ref create mode 100644 tests/0007_for/code1.log.ref create mode 100644 tests/0007_for/code2.log.ref create mode 100644 tests/0007_for/main.gs create mode 100644 tests/0007_for/mem.log.ref create mode 100644 tests/0007_for/screen.log.ref create mode 100644 tests/0007_for/trace.log.ref create mode 100644 tests/0008_forall/basic.log.ref create mode 100644 tests/0008_forall/code.log.ref create mode 100644 tests/0008_forall/code1.log.ref create mode 100644 tests/0008_forall/code2.log.ref create mode 100644 tests/0008_forall/main.gs create mode 100644 tests/0008_forall/mem.log.ref create mode 100644 tests/0008_forall/screen.log.ref create mode 100644 tests/0008_forall/trace.log.ref create mode 100644 tests/0009_func/basic.log.ref create mode 100644 tests/0009_func/code.log.ref create mode 100644 tests/0009_func/code1.log.ref create mode 100644 tests/0009_func/code2.log.ref create mode 100644 tests/0009_func/main.gs create mode 100644 tests/0009_func/mem.log.ref create mode 100644 tests/0009_func/screen.log.ref create mode 100644 tests/0009_func/trace.log.ref create mode 100644 tests/0010_exit/basic.log.ref create mode 100644 tests/0010_exit/code.log.ref create mode 100644 tests/0010_exit/code1.log.ref create mode 100644 tests/0010_exit/code2.log.ref create mode 100644 tests/0010_exit/main.gs create mode 100644 tests/0010_exit/mem.log.ref create mode 100644 tests/0010_exit/screen.log.ref create mode 100644 tests/0010_exit/trace.log.ref create mode 100644 tests/0011_return/basic.log.ref create mode 100644 tests/0011_return/code.log.ref create mode 100644 tests/0011_return/code1.log.ref create mode 100644 tests/0011_return/code2.log.ref create mode 100644 tests/0011_return/main.gs create mode 100644 tests/0011_return/mem.log.ref create mode 100644 tests/0011_return/screen.log.ref create mode 100644 tests/0011_return/trace.log.ref create mode 100644 tests/0012_get/basic.log.ref create mode 100644 tests/0012_get/code.log.ref create mode 100644 tests/0012_get/code1.log.ref create mode 100644 tests/0012_get/code2.log.ref create mode 100644 tests/0012_get/main.gs create mode 100644 tests/0012_get/mem.log.ref create mode 100644 tests/0012_get/screen.log.ref create mode 100644 tests/0012_get/trace.log.ref create mode 100644 tests/0013_put/basic.log.ref create mode 100644 tests/0013_put/code.log.ref create mode 100644 tests/0013_put/code1.log.ref create mode 100644 tests/0013_put/code2.log.ref create mode 100644 tests/0013_put/main.gs create mode 100644 tests/0013_put/mem.log.ref create mode 100644 tests/0013_put/screen.log.ref create mode 100644 tests/0013_put/trace.log.ref create mode 100644 tests/0014_string/basic.log.ref create mode 100644 tests/0014_string/code.log.ref create mode 100644 tests/0014_string/code1.log.ref create mode 100644 tests/0014_string/code2.log.ref create mode 100644 tests/0014_string/main.gs create mode 100644 tests/0014_string/mem.log.ref create mode 100644 tests/0014_string/screen.log.ref create mode 100644 tests/0014_string/trace.log.ref create mode 100644 tests/0015_length/basic.log.ref create mode 100644 tests/0015_length/code.log.ref create mode 100644 tests/0015_length/code1.log.ref create mode 100644 tests/0015_length/code2.log.ref create mode 100644 tests/0015_length/main.gs create mode 100644 tests/0015_length/mem.log.ref create mode 100644 tests/0015_length/screen.log.ref create mode 100644 tests/0015_length/trace.log.ref create mode 100644 tests/0016_delete_hash/basic.log.ref create mode 100644 tests/0016_delete_hash/code.log.ref create mode 100644 tests/0016_delete_hash/code1.log.ref create mode 100644 tests/0016_delete_hash/code2.log.ref create mode 100644 tests/0016_delete_hash/main.gs create mode 100644 tests/0016_delete_hash/mem.log.ref create mode 100644 tests/0016_delete_hash/screen.log.ref create mode 100644 tests/0016_delete_hash/trace.log.ref create mode 100644 tests/0017_dup/basic.log.ref create mode 100644 tests/0017_dup/code.log.ref create mode 100644 tests/0017_dup/code1.log.ref create mode 100644 tests/0017_dup/code2.log.ref create mode 100644 tests/0017_dup/main.gs create mode 100644 tests/0017_dup/mem.log.ref create mode 100644 tests/0017_dup/screen.log.ref create mode 100644 tests/0017_dup/trace.log.ref create mode 100644 tests/0018_pop/basic.log.ref create mode 100644 tests/0018_pop/code.log.ref create mode 100644 tests/0018_pop/code1.log.ref create mode 100644 tests/0018_pop/code2.log.ref create mode 100644 tests/0018_pop/main.gs create mode 100644 tests/0018_pop/mem.log.ref create mode 100644 tests/0018_pop/screen.log.ref create mode 100644 tests/0018_pop/trace.log.ref create mode 100644 tests/0019_exch/basic.log.ref create mode 100644 tests/0019_exch/code.log.ref create mode 100644 tests/0019_exch/code1.log.ref create mode 100644 tests/0019_exch/code2.log.ref create mode 100644 tests/0019_exch/main.gs create mode 100644 tests/0019_exch/mem.log.ref create mode 100644 tests/0019_exch/screen.log.ref create mode 100644 tests/0019_exch/trace.log.ref create mode 100644 tests/0020_rot/basic.log.ref create mode 100644 tests/0020_rot/code.log.ref create mode 100644 tests/0020_rot/code1.log.ref create mode 100644 tests/0020_rot/code2.log.ref create mode 100644 tests/0020_rot/main.gs create mode 100644 tests/0020_rot/mem.log.ref create mode 100644 tests/0020_rot/screen.log.ref create mode 100644 tests/0020_rot/trace.log.ref create mode 100644 tests/0021_over/basic.log.ref create mode 100644 tests/0021_over/code.log.ref create mode 100644 tests/0021_over/code1.log.ref create mode 100644 tests/0021_over/code2.log.ref create mode 100644 tests/0021_over/main.gs create mode 100644 tests/0021_over/mem.log.ref create mode 100644 tests/0021_over/screen.log.ref create mode 100644 tests/0021_over/trace.log.ref create mode 100644 tests/0022_index/basic.log.ref create mode 100644 tests/0022_index/code.log.ref create mode 100644 tests/0022_index/code1.log.ref create mode 100644 tests/0022_index/code2.log.ref create mode 100644 tests/0022_index/main.gs create mode 100644 tests/0022_index/mem.log.ref create mode 100644 tests/0022_index/screen.log.ref create mode 100644 tests/0022_index/trace.log.ref create mode 100644 tests/0023_roll/basic.log.ref create mode 100644 tests/0023_roll/code.log.ref create mode 100644 tests/0023_roll/code1.log.ref create mode 100644 tests/0023_roll/code2.log.ref create mode 100644 tests/0023_roll/main.gs create mode 100644 tests/0023_roll/mem.log.ref create mode 100644 tests/0023_roll/screen.log.ref create mode 100644 tests/0023_roll/trace.log.ref create mode 100644 tests/0024_exec/basic.log.ref create mode 100644 tests/0024_exec/code.log.ref create mode 100644 tests/0024_exec/code1.log.ref create mode 100644 tests/0024_exec/code2.log.ref create mode 100644 tests/0024_exec/main.gs create mode 100644 tests/0024_exec/mem.log.ref create mode 100644 tests/0024_exec/screen.log.ref create mode 100644 tests/0024_exec/trace.log.ref create mode 100644 tests/0025_add/basic.log.ref create mode 100644 tests/0025_add/code.log.ref create mode 100644 tests/0025_add/code1.log.ref create mode 100644 tests/0025_add/code2.log.ref create mode 100644 tests/0025_add/main.gs create mode 100644 tests/0025_add/mem.log.ref create mode 100644 tests/0025_add/screen.log.ref create mode 100644 tests/0025_add/trace.log.ref create mode 100644 tests/0026_sub/basic.log.ref create mode 100644 tests/0026_sub/code.log.ref create mode 100644 tests/0026_sub/code1.log.ref create mode 100644 tests/0026_sub/code2.log.ref create mode 100644 tests/0026_sub/main.gs create mode 100644 tests/0026_sub/mem.log.ref create mode 100644 tests/0026_sub/screen.log.ref create mode 100644 tests/0026_sub/trace.log.ref create mode 100644 tests/0027_mul/basic.log.ref create mode 100644 tests/0027_mul/code.log.ref create mode 100644 tests/0027_mul/code1.log.ref create mode 100644 tests/0027_mul/code2.log.ref create mode 100644 tests/0027_mul/main.gs create mode 100644 tests/0027_mul/mem.log.ref create mode 100644 tests/0027_mul/screen.log.ref create mode 100644 tests/0027_mul/trace.log.ref create mode 100644 tests/0028_div/basic.log.ref create mode 100644 tests/0028_div/code.log.ref create mode 100644 tests/0028_div/code1.log.ref create mode 100644 tests/0028_div/code2.log.ref create mode 100644 tests/0028_div/main.gs create mode 100644 tests/0028_div/mem.log.ref create mode 100644 tests/0028_div/screen.log.ref create mode 100644 tests/0028_div/trace.log.ref create mode 100644 tests/0029_mod/basic.log.ref create mode 100644 tests/0029_mod/code.log.ref create mode 100644 tests/0029_mod/code1.log.ref create mode 100644 tests/0029_mod/code2.log.ref create mode 100644 tests/0029_mod/main.gs create mode 100644 tests/0029_mod/mem.log.ref create mode 100644 tests/0029_mod/screen.log.ref create mode 100644 tests/0029_mod/trace.log.ref create mode 100644 tests/0030_and/basic.log.ref create mode 100644 tests/0030_and/code.log.ref create mode 100644 tests/0030_and/code1.log.ref create mode 100644 tests/0030_and/code2.log.ref create mode 100644 tests/0030_and/main.gs create mode 100644 tests/0030_and/mem.log.ref create mode 100644 tests/0030_and/screen.log.ref create mode 100644 tests/0030_and/trace.log.ref create mode 100644 tests/0031_or/basic.log.ref create mode 100644 tests/0031_or/code.log.ref create mode 100644 tests/0031_or/code1.log.ref create mode 100644 tests/0031_or/code2.log.ref create mode 100644 tests/0031_or/main.gs create mode 100644 tests/0031_or/mem.log.ref create mode 100644 tests/0031_or/screen.log.ref create mode 100644 tests/0031_or/trace.log.ref create mode 100644 tests/0032_xor/basic.log.ref create mode 100644 tests/0032_xor/code.log.ref create mode 100644 tests/0032_xor/code1.log.ref create mode 100644 tests/0032_xor/code2.log.ref create mode 100644 tests/0032_xor/main.gs create mode 100644 tests/0032_xor/mem.log.ref create mode 100644 tests/0032_xor/screen.log.ref create mode 100644 tests/0032_xor/trace.log.ref create mode 100644 tests/0033_min/basic.log.ref create mode 100644 tests/0033_min/code.log.ref create mode 100644 tests/0033_min/code1.log.ref create mode 100644 tests/0033_min/code2.log.ref create mode 100644 tests/0033_min/main.gs create mode 100644 tests/0033_min/mem.log.ref create mode 100644 tests/0033_min/screen.log.ref create mode 100644 tests/0033_min/trace.log.ref create mode 100644 tests/0034_max/basic.log.ref create mode 100644 tests/0034_max/code.log.ref create mode 100644 tests/0034_max/code1.log.ref create mode 100644 tests/0034_max/code2.log.ref create mode 100644 tests/0034_max/main.gs create mode 100644 tests/0034_max/mem.log.ref create mode 100644 tests/0034_max/screen.log.ref create mode 100644 tests/0034_max/trace.log.ref create mode 100644 tests/0035_neg/basic.log.ref create mode 100644 tests/0035_neg/code.log.ref create mode 100644 tests/0035_neg/code1.log.ref create mode 100644 tests/0035_neg/code2.log.ref create mode 100644 tests/0035_neg/main.gs create mode 100644 tests/0035_neg/mem.log.ref create mode 100644 tests/0035_neg/screen.log.ref create mode 100644 tests/0035_neg/trace.log.ref create mode 100644 tests/0036_not/basic.log.ref create mode 100644 tests/0036_not/code.log.ref create mode 100644 tests/0036_not/code1.log.ref create mode 100644 tests/0036_not/code2.log.ref create mode 100644 tests/0036_not/main.gs create mode 100644 tests/0036_not/mem.log.ref create mode 100644 tests/0036_not/screen.log.ref create mode 100644 tests/0036_not/trace.log.ref create mode 100644 tests/0037_abs/basic.log.ref create mode 100644 tests/0037_abs/code.log.ref create mode 100644 tests/0037_abs/code1.log.ref create mode 100644 tests/0037_abs/code2.log.ref create mode 100644 tests/0037_abs/main.gs create mode 100644 tests/0037_abs/mem.log.ref create mode 100644 tests/0037_abs/screen.log.ref create mode 100644 tests/0037_abs/trace.log.ref create mode 100644 tests/0038_shl/basic.log.ref create mode 100644 tests/0038_shl/code.log.ref create mode 100644 tests/0038_shl/code1.log.ref create mode 100644 tests/0038_shl/code2.log.ref create mode 100644 tests/0038_shl/main.gs create mode 100644 tests/0038_shl/mem.log.ref create mode 100644 tests/0038_shl/screen.log.ref create mode 100644 tests/0038_shl/trace.log.ref create mode 100644 tests/0039_shr/basic.log.ref create mode 100644 tests/0039_shr/code.log.ref create mode 100644 tests/0039_shr/code1.log.ref create mode 100644 tests/0039_shr/code2.log.ref create mode 100644 tests/0039_shr/main.gs create mode 100644 tests/0039_shr/mem.log.ref create mode 100644 tests/0039_shr/screen.log.ref create mode 100644 tests/0039_shr/trace.log.ref create mode 100644 tests/0040_cmp/basic.log.ref create mode 100644 tests/0040_cmp/code.log.ref create mode 100644 tests/0040_cmp/code1.log.ref create mode 100644 tests/0040_cmp/code2.log.ref create mode 100644 tests/0040_cmp/main.gs create mode 100644 tests/0040_cmp/mem.log.ref create mode 100644 tests/0040_cmp/screen.log.ref create mode 100644 tests/0040_cmp/trace.log.ref create mode 100644 tests/0041_eq/basic.log.ref create mode 100644 tests/0041_eq/code.log.ref create mode 100644 tests/0041_eq/code1.log.ref create mode 100644 tests/0041_eq/code2.log.ref create mode 100644 tests/0041_eq/main.gs create mode 100644 tests/0041_eq/mem.log.ref create mode 100644 tests/0041_eq/screen.log.ref create mode 100644 tests/0041_eq/trace.log.ref create mode 100644 tests/0042_ne/basic.log.ref create mode 100644 tests/0042_ne/code.log.ref create mode 100644 tests/0042_ne/code1.log.ref create mode 100644 tests/0042_ne/code2.log.ref create mode 100644 tests/0042_ne/main.gs create mode 100644 tests/0042_ne/mem.log.ref create mode 100644 tests/0042_ne/screen.log.ref create mode 100644 tests/0042_ne/trace.log.ref create mode 100644 tests/0043_gt/basic.log.ref create mode 100644 tests/0043_gt/code.log.ref create mode 100644 tests/0043_gt/code1.log.ref create mode 100644 tests/0043_gt/code2.log.ref create mode 100644 tests/0043_gt/main.gs create mode 100644 tests/0043_gt/mem.log.ref create mode 100644 tests/0043_gt/screen.log.ref create mode 100644 tests/0043_gt/trace.log.ref create mode 100644 tests/0044_ge/basic.log.ref create mode 100644 tests/0044_ge/code.log.ref create mode 100644 tests/0044_ge/code1.log.ref create mode 100644 tests/0044_ge/code2.log.ref create mode 100644 tests/0044_ge/main.gs create mode 100644 tests/0044_ge/mem.log.ref create mode 100644 tests/0044_ge/screen.log.ref create mode 100644 tests/0044_ge/trace.log.ref create mode 100644 tests/0045_lt/basic.log.ref create mode 100644 tests/0045_lt/code.log.ref create mode 100644 tests/0045_lt/code1.log.ref create mode 100644 tests/0045_lt/code2.log.ref create mode 100644 tests/0045_lt/main.gs create mode 100644 tests/0045_lt/mem.log.ref create mode 100644 tests/0045_lt/screen.log.ref create mode 100644 tests/0045_lt/trace.log.ref create mode 100644 tests/0046_le/basic.log.ref create mode 100644 tests/0046_le/code.log.ref create mode 100644 tests/0046_le/code1.log.ref create mode 100644 tests/0046_le/code2.log.ref create mode 100644 tests/0046_le/main.gs create mode 100644 tests/0046_le/mem.log.ref create mode 100644 tests/0046_le/screen.log.ref create mode 100644 tests/0046_le/trace.log.ref create mode 100644 tests/0047_hash/basic.log.ref create mode 100644 tests/0047_hash/code.log.ref create mode 100644 tests/0047_hash/code1.log.ref create mode 100644 tests/0047_hash/code2.log.ref create mode 100644 tests/0047_hash/main.gs create mode 100644 tests/0047_hash/mem.log.ref create mode 100644 tests/0047_hash/screen.log.ref create mode 100644 tests/0047_hash/trace.log.ref create mode 100644 tests/0048_delete_array/basic.log.ref create mode 100644 tests/0048_delete_array/code.log.ref create mode 100644 tests/0048_delete_array/code1.log.ref create mode 100644 tests/0048_delete_array/code2.log.ref create mode 100644 tests/0048_delete_array/main.gs create mode 100644 tests/0048_delete_array/mem.log.ref create mode 100644 tests/0048_delete_array/screen.log.ref create mode 100644 tests/0048_delete_array/trace.log.ref create mode 100644 tests/0049_delete_string/basic.log.ref create mode 100644 tests/0049_delete_string/code.log.ref create mode 100644 tests/0049_delete_string/code1.log.ref create mode 100644 tests/0049_delete_string/code2.log.ref create mode 100644 tests/0049_delete_string/main.gs create mode 100644 tests/0049_delete_string/mem.log.ref create mode 100644 tests/0049_delete_string/screen.log.ref create mode 100644 tests/0049_delete_string/trace.log.ref create mode 100644 tests/0050_parent/basic.log.ref create mode 100644 tests/0050_parent/code.log.ref create mode 100644 tests/0050_parent/code1.log.ref create mode 100644 tests/0050_parent/code2.log.ref create mode 100644 tests/0050_parent/main.gs create mode 100644 tests/0050_parent/mem.log.ref create mode 100644 tests/0050_parent/screen.log.ref create mode 100644 tests/0050_parent/trace.log.ref create mode 100644 tests/0051_hash_parent/basic.log.ref create mode 100644 tests/0051_hash_parent/code.log.ref create mode 100644 tests/0051_hash_parent/code1.log.ref create mode 100644 tests/0051_hash_parent/code2.log.ref create mode 100644 tests/0051_hash_parent/main.gs create mode 100644 tests/0051_hash_parent/mem.log.ref create mode 100644 tests/0051_hash_parent/screen.log.ref create mode 100644 tests/0051_hash_parent/trace.log.ref create mode 100644 tests/0052_dict/basic.log.ref create mode 100644 tests/0052_dict/code.log.ref create mode 100644 tests/0052_dict/code1.log.ref create mode 100644 tests/0052_dict/code2.log.ref create mode 100644 tests/0052_dict/main.gs create mode 100644 tests/0052_dict/mem.log.ref create mode 100644 tests/0052_dict/screen.log.ref create mode 100644 tests/0052_dict/trace.log.ref create mode 100644 tests/0053_freeze/basic.log.ref create mode 100644 tests/0053_freeze/code.log.ref create mode 100644 tests/0053_freeze/code1.log.ref create mode 100644 tests/0053_freeze/code2.log.ref create mode 100644 tests/0053_freeze/main.gs create mode 100644 tests/0053_freeze/mem.log.ref create mode 100644 tests/0053_freeze/screen.log.ref create mode 100644 tests/0053_freeze/trace.log.ref create mode 100644 tests/0054_freeze_string/basic.log.ref create mode 100644 tests/0054_freeze_string/code.log.ref create mode 100644 tests/0054_freeze_string/code1.log.ref create mode 100644 tests/0054_freeze_string/code2.log.ref create mode 100644 tests/0054_freeze_string/main.gs create mode 100644 tests/0054_freeze_string/mem.log.ref create mode 100644 tests/0054_freeze_string/screen.log.ref create mode 100644 tests/0054_freeze_string/trace.log.ref create mode 100644 tests/0055_freeze_array/basic.log.ref create mode 100644 tests/0055_freeze_array/code.log.ref create mode 100644 tests/0055_freeze_array/code1.log.ref create mode 100644 tests/0055_freeze_array/code2.log.ref create mode 100644 tests/0055_freeze_array/main.gs create mode 100644 tests/0055_freeze_array/mem.log.ref create mode 100644 tests/0055_freeze_array/screen.log.ref create mode 100644 tests/0055_freeze_array/trace.log.ref create mode 100644 tests/0056_freeze_hash/basic.log.ref create mode 100644 tests/0056_freeze_hash/code.log.ref create mode 100644 tests/0056_freeze_hash/code1.log.ref create mode 100644 tests/0056_freeze_hash/code2.log.ref create mode 100644 tests/0056_freeze_hash/main.gs create mode 100644 tests/0056_freeze_hash/mem.log.ref create mode 100644 tests/0056_freeze_hash/screen.log.ref create mode 100644 tests/0056_freeze_hash/trace.log.ref create mode 100644 tests/0057_dict_nil/basic.log.ref create mode 100644 tests/0057_dict_nil/code.log.ref create mode 100644 tests/0057_dict_nil/code1.log.ref create mode 100644 tests/0057_dict_nil/code2.log.ref create mode 100644 tests/0057_dict_nil/main.gs create mode 100644 tests/0057_dict_nil/mem.log.ref create mode 100644 tests/0057_dict_nil/screen.log.ref create mode 100644 tests/0057_dict_nil/trace.log.ref create mode 100644 tests/0058_def_local/basic.log.ref create mode 100644 tests/0058_def_local/code.log.ref create mode 100644 tests/0058_def_local/code1.log.ref create mode 100644 tests/0058_def_local/code2.log.ref create mode 100644 tests/0058_def_local/main.gs create mode 100644 tests/0058_def_local/mem.log.ref create mode 100644 tests/0058_def_local/screen.log.ref create mode 100644 tests/0058_def_local/trace.log.ref create mode 100644 tests/0059_lineto/basic.log.ref create mode 100644 tests/0059_lineto/code.log.ref create mode 100644 tests/0059_lineto/code1.log.ref create mode 100644 tests/0059_lineto/code2.log.ref create mode 100644 tests/0059_lineto/main.gs create mode 100644 tests/0059_lineto/mem.log.ref create mode 100644 tests/0059_lineto/screen.log.ref create mode 100644 tests/0059_lineto/trace.log.ref create mode 100644 tests/0060_constants2/basic.log.ref create mode 100644 tests/0060_constants2/code.log.ref create mode 100644 tests/0060_constants2/code1.log.ref create mode 100644 tests/0060_constants2/code2.log.ref create mode 100644 tests/0060_constants2/main.gs create mode 100644 tests/0060_constants2/mem.log.ref create mode 100644 tests/0060_constants2/screen.log.ref create mode 100644 tests/0060_constants2/trace.log.ref create mode 100644 tests/0061_def/basic.log.ref create mode 100644 tests/0061_def/code.log.ref create mode 100644 tests/0061_def/code1.log.ref create mode 100644 tests/0061_def/code2.log.ref create mode 100644 tests/0061_def/main.gs create mode 100644 tests/0061_def/mem.log.ref create mode 100644 tests/0061_def/screen.log.ref create mode 100644 tests/0061_def/trace.log.ref create mode 100644 tests/0062_ldef/basic.log.ref create mode 100644 tests/0062_ldef/code.log.ref create mode 100644 tests/0062_ldef/code1.log.ref create mode 100644 tests/0062_ldef/code2.log.ref create mode 100644 tests/0062_ldef/main.gs create mode 100644 tests/0062_ldef/mem.log.ref create mode 100644 tests/0062_ldef/screen.log.ref create mode 100644 tests/0062_ldef/trace.log.ref create mode 100644 tests/0063_gdef/basic.log.ref create mode 100644 tests/0063_gdef/code.log.ref create mode 100644 tests/0063_gdef/code1.log.ref create mode 100644 tests/0063_gdef/code2.log.ref create mode 100644 tests/0063_gdef/main.gs create mode 100644 tests/0063_gdef/mem.log.ref create mode 100644 tests/0063_gdef/screen.log.ref create mode 100644 tests/0063_gdef/trace.log.ref create mode 100644 tests/0064_method_get/basic.log.ref create mode 100644 tests/0064_method_get/code.log.ref create mode 100644 tests/0064_method_get/code1.log.ref create mode 100644 tests/0064_method_get/code2.log.ref create mode 100644 tests/0064_method_get/main.gs create mode 100644 tests/0064_method_get/mem.log.ref create mode 100644 tests/0064_method_get/screen.log.ref create mode 100644 tests/0064_method_get/trace.log.ref create mode 100644 tests/0065_method_set/basic.log.ref create mode 100644 tests/0065_method_set/code.log.ref create mode 100644 tests/0065_method_set/code1.log.ref create mode 100644 tests/0065_method_set/code2.log.ref create mode 100644 tests/0065_method_set/main.gs create mode 100644 tests/0065_method_set/mem.log.ref create mode 100644 tests/0065_method_set/screen.log.ref create mode 100644 tests/0065_method_set/trace.log.ref create mode 100644 tests/0066_inheritance/basic.log.ref create mode 100644 tests/0066_inheritance/code.log.ref create mode 100644 tests/0066_inheritance/code1.log.ref create mode 100644 tests/0066_inheritance/code2.log.ref create mode 100644 tests/0066_inheritance/main.gs create mode 100644 tests/0066_inheritance/mem.log.ref create mode 100644 tests/0066_inheritance/screen.log.ref create mode 100644 tests/0066_inheritance/trace.log.ref create mode 100644 tests/0067_class/basic.log.ref create mode 100644 tests/0067_class/code.log.ref create mode 100644 tests/0067_class/code1.log.ref create mode 100644 tests/0067_class/code2.log.ref create mode 100644 tests/0067_class/main.gs create mode 100644 tests/0067_class/mem.log.ref create mode 100644 tests/0067_class/screen.log.ref create mode 100644 tests/0067_class/trace.log.ref create mode 100644 tests/0068_utf8/basic.log.ref create mode 100644 tests/0068_utf8/code.log.ref create mode 100644 tests/0068_utf8/code1.log.ref create mode 100644 tests/0068_utf8/code2.log.ref create mode 100644 tests/0068_utf8/main.gs create mode 100644 tests/0068_utf8/mem.log.ref create mode 100644 tests/0068_utf8/screen.log.ref create mode 100644 tests/0068_utf8/trace.log.ref create mode 100644 tests/0069_hash_set_with_parent/basic.log.ref create mode 100644 tests/0069_hash_set_with_parent/code.log.ref create mode 100644 tests/0069_hash_set_with_parent/code1.log.ref create mode 100644 tests/0069_hash_set_with_parent/code2.log.ref create mode 100644 tests/0069_hash_set_with_parent/main.gs create mode 100644 tests/0069_hash_set_with_parent/mem.log.ref create mode 100644 tests/0069_hash_set_with_parent/screen.log.ref create mode 100644 tests/0069_hash_set_with_parent/trace.log.ref create mode 100644 tests/0070_hash_del_with_parent/basic.log.ref create mode 100644 tests/0070_hash_del_with_parent/code.log.ref create mode 100644 tests/0070_hash_del_with_parent/code1.log.ref create mode 100644 tests/0070_hash_del_with_parent/code2.log.ref create mode 100644 tests/0070_hash_del_with_parent/main.gs create mode 100644 tests/0070_hash_del_with_parent/mem.log.ref create mode 100644 tests/0070_hash_del_with_parent/screen.log.ref create mode 100644 tests/0070_hash_del_with_parent/trace.log.ref create mode 100644 tests/test_script create mode 100644 types.def create mode 100644 vocabulary.def diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..162e174 --- /dev/null +++ b/Makefile @@ -0,0 +1,112 @@ +GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi) +GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags) +VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION) +BRANCH := $(shell git branch | perl -ne 'print $$_ if s/^\*\s*//') +PREFIX := gfxboot2-$(VERSION) + +ifdef 32BIT + OPT_32BIT = -m32 +endif + +CC = gcc +CFLAGS = -g -O2 $(OPT_32BIT) -I. -Wall -Wno-pointer-sign -Wsign-conversion -Wsign-compare +LDFLAGS = $(OPT_32BIT) + +GFXBOOT_LIB_SRC = gfxboot.c gfxboot_main.c \ + gfxboot_array.c gfxboot_canvas.c gfxboot_draw.c gfxboot_font.c gfxboot_hash.c gfxboot_context.c \ + gfxboot_lib.c gfxboot_malloc.c gfxboot_gstate.c gfxboot_jpeg.c \ + gfxboot_mem.c gfxboot_num.c gfxboot_obj.c gfxboot_olist.c gfxboot_prim.c gfxboot_debug.c +GFXBOOT_LIB_OBJ = $(GFXBOOT_LIB_SRC:.c=.o) + +GFXBOOT_BIN_SRC = gfxboot-compile.c gfxboot-x11.c +GFXBOOT_BIN_OBJ = $(GFXBOOT_BIN_SRC:.c=.o) + +GFXBOOT_HEADER = gfxboot.h vocabulary.h + +GRUB_MODULE_BIOS = $(shell . ./config_vars ; echo $$grub_module_bios) +GRUB_MODULE_EFI = $(shell . ./config_vars ; echo $$grub_module_efi) +GRUB_FILES = $(shell . ./config_vars ; echo $$grub_files) +GRUB_ISO = $(shell . ./config_vars ; echo $$grub_iso) + +ifneq "$(vm)" "" + VM = --$(vm) +endif + +.PHONY: all grub-bios grub-efi grub-iso test-bios test-efi test-x11 archive clean tests + +all: gfxboot-x11 gfxboot-compile gfxboot-font + +changelog: $(GITDEPS) + $(GIT2LOG) --changelog changelog + +doc: doc/reference.adoc + +doc/reference.adoc: vocabulary.def gfxboot_prim.c doc/reference_template + ./mk_reference vocabulary.def gfxboot_prim.c doc/reference_template $@ + +grub-bios: $(GRUB_MODULE_BIOS) + +grub-efi: $(GRUB_MODULE_EFI) + +grub-iso: $(GRUB_ISO) + +test-bios: grub-iso + vm --cdrom $(GRUB_ISO) $(VM) --serial + +test-efi: grub-iso + vm --cdrom $(GRUB_ISO) $(VM) --serial --efi + +test-x11: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 x11 + +test-cons: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 --no-x11 --file - x11 + +test-console: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 --no-x11 --file - x11 + +vocabulary.h: vocabulary.def types.def + ./mk_vocabulary vocabulary.def types.def $@ + +$(GFXBOOT_LIB_OBJ): %.o: %.c $(GFXBOOT_HEADER) + $(CC) -c $(CFLAGS) -ffreestanding $< + +$(GFXBOOT_BIN_OBJ): %.o: %.c $(GFXBOOT_HEADER) + $(CC) -c $(CFLAGS) $< + +gfxboot-x11: gfxboot-x11.o $(GFXBOOT_LIB_OBJ) + $(CC) $< $(GFXBOOT_LIB_OBJ) $(LDFLAGS) -lX11 -o $@ + +gfxboot-compile: gfxboot-compile.o + $(CC) $< $(LDFLAGS) -o $@ + +gfxboot-font: gfxboot-font.c + $(CC) $(CFLAGS) -I /usr/include/freetype2 -lfreetype $< -o $@ + +$(GRUB_MODULE_BIOS): $(GRUB_FILES) + ./grub_build --bios + +$(GRUB_MODULE_EFI): $(GRUB_FILES) + ./grub_build --efi + +$(GRUB_ISO): $(GRUB_MODULE_BIOS) $(GRUB_MODULE_EFI) + ./mk_grub_test + +tests: gfxboot-x11 gfxboot-compile + @./run_tests + +archive: changelog + @if [ ! -d .git ] ; then echo no git repo ; false ; fi + mkdir -p package + git archive --prefix=$(PREFIX)/ $(BRANCH) > package/$(PREFIX).tar + tar -r -f package/$(PREFIX).tar --mode=0664 --owner=root --group=root --mtime="`git show -s --format=%ci`" --transform='s:^:$(PREFIX)/:' VERSION changelog + xz -f package/$(PREFIX).tar + +clean: + rm -f changelog VERSION vocabulary.h + rm -f $(GRUB_ISO) screenlog.0 *~ *.o gfxboot-{x11,font,compile} sample *.log files/*~ *.gc doc/*~ + rm -f tests/*~ tests/*/{*.log,*~,*.gc,gc.log.ref,opt*.log.ref} + rm -rf x11 grub package diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..34400e0 --- /dev/null +++ b/README.adoc @@ -0,0 +1,91 @@ += gfxboot2 + +A graphical interface to bootloaders. + +__This is still in a very early stage.__ + +It's essentially a rework of https://github.com/openSUSE/gfxboot[gfxboot] +but written in C. + +The implemented scripting language is again a +https://en.wikipedia.org/wiki/Stack-oriented_programming[stack-based language] - similar +to what gfxboot uses but with integrated memory management and a hash data type. + +=== Status + +__The code is not yet ready to be used.__ + +The scripting language is basically implemented, including the graphics primitves. + +The connection to `grub` is still a bit awkward. The patches extend grub to +expose a link to the graphics framebuffer. + +This is not strictly needed. gfxboot does never read the video memory. +An`update` function that can update a rectangular screen area would suffice. + +AFAICS grub does not exactly have that. There is +`doublebuf_blit_update_screen` in +https://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/video/fb/video_fb.c[grub-core/video/fb/video_fb.c], +though. But this updates continuous memory ranges, not rectangular areas. + +=== A first look + +.A cat +image::doc/screen_01.png[A cat] + +.The source code +[%collapsible] +==== +[source] +---- +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image gstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos +image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0xffff00 setcolor + +getgstate cfont setfont +50 50 setpos "Some font samples" show + +0x00ffffff setcolor + +getgstate cfont setfont +50 100 setpos text show + +getgstate bar setfont +50 130 setpos text show + +getgstate foo setfont +50 180 setpos text show +---- +==== + +The prompt in the lower part of the screen is the debug console. + +=== Next steps + +- get a basic boot menu working +- fine-tune language definition +- more systematic debug console +- add de-fragmentation to memory management +- work on documentation + +=== Some documentation + +For details check out the link:doc/reference.adoc#add[language reference]. + +To get started, read the link:doc/building.adoc#add[build instructions]. + +The code is covered by a link:doc/testing.adoc#add[test suite]. + +The link:doc/internals.adoc#add[binary format] is also documented. diff --git a/config_vars b/config_vars new file mode 100644 index 0000000..684f213 --- /dev/null +++ b/config_vars @@ -0,0 +1,18 @@ +# this config file is sourced in build and test scripts + +su="sw 0" + +grub_root=~/g +grub_build=b +grub_dir="$grub_root/$grub_build" + +grub_module=gfxboot +grub_files="gfxboot.c gfxboot.h gfxboot_*.c vocabulary.h" + +grub_module_bios=$grub_dir/build/grub-core/$grub_module.mod +grub_module_efi=$grub_dir/build-efi/grub-core/$grub_module.mod + +grub_iso_src=files/cd +grub_iso_dir=$PWD/grub +grub_iso=$PWD/grub.iso + diff --git a/doc/building.adoc b/doc/building.adoc new file mode 100644 index 0000000..e5989d1 --- /dev/null +++ b/doc/building.adoc @@ -0,0 +1,46 @@ +== Prepare grub builds + +=== check out grub2 package +osc co openSUSE:Factory/grub2 +cd openSUSE:Factory/grub2 + +=== build it locally +osc build --clean --download-api-only standard x86_64 + +=== prepare $HOME/g and $HOME/g/b symlinks pointing to grub2 build directory +ln -snf $OBS_BUILD_DIR/obs-openSUSE:Factory-standard-grub2 ~/g +cd ~g +ln -snf .build.packages/BUILD/grub-2.04 b + +=== apply gfxboot2 patches +cd ~g/b +patch -p1 < $GFXBOOT2_DIR/patches/grub-2.04.diff + +== required packages + +- mksusecd +- qemu +- vm (TBD) +- freetype2-devel +- libX11-devel + +== building 32bit binaries +- packages + - glibc-devel-32bit + - freetype2-devel-32bit + - libX11-devel-32bit + - gcc-32bit + +- run 'make 32BIT=1 ...' + +== make targets +- (default target): build gfxboot tools: gfxboot-compile, gfxboot-font, gfxboot-x11 +- tests: run test suite +- grub-bios: legacy grub +- grub-efi: efi grub +- grub-iso: build grub bootable iso +- test-x11: build & run x11 variant +- test-console: build & run text console variant (no gfx shown) +- test-bios: build & legacy boot iso with qemu +- test-efi: build & efi boot iso with qemu +- test-XXX builds use the files in the 'files' subdirectory - main.gs contains the main program diff --git a/doc/internals.adoc b/doc/internals.adoc new file mode 100644 index 0000000..63c2099 --- /dev/null +++ b/doc/internals.adoc @@ -0,0 +1,68 @@ +== Internal data structures + +=== Binary format + +The binary code is encoded as follows: + +1 opcode byte followed by 0 or more data bytes + +[source] +---- +opcode [data] ... +opcode [data] ... +... + +opcode bits 0..3: type +opcode bits 4..7: arg +---- + +There are 2 variants of opcodes: + +- the 1st decodes into type + signed/unsigned 64 bit value (arg1) +- the 2nd decodes into type + unsigned 32 bit value (arg1, the size of the + following byte array) + byte array (arg2) + +The 1st group is for number-like data, the 2nd group for string-like data. Note that strings are not +zero-terminated. + +[source] +---- +if type < 5 + # variant 1 + if arg < 8 + arg1 = arg + else # arg >= 8 + arg1 = decode_num(arg - 7) # 1..8 bytes + # arg1 will be decoded as signed if type is 1 (integer), else unsigned + # (if signed, bit 7 of the last byte is the sign bit) + endif +else # type >= 5 + # variant 2 + if arg < 12 + arg1 = arg + else # arg >= 12 + arg1 = decode_num(arg - 11) # 1..4 bytes + # arg1 will always be decoded as unsigned + endif + arg2 = the following arg1 bytes # arg1 may be 0 +endif + +decode_num(n): read next n bytes as little-endian number +---- + +For type codes see `types.def`. + +The file has to start with the magic byte sequence `0x75 0x51 0x12 0xa9 0x42 0x7a 0xad 0x60`. +(Which decodes as a 7 char long special comment.) + +Sample decoded byte sequences: + +[source] +---- +# hex [type] decoded value +00 [nil] nil +51 [int] 5 +81 ff [int] -1 +37 61 62 63 [str] "abc" +c7 0e 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e [str] "abcdefghijklmn" +---- diff --git a/doc/reference.adoc b/doc/reference.adoc new file mode 100644 index 0000000..be1c5a6 --- /dev/null +++ b/doc/reference.adoc @@ -0,0 +1,2226 @@ +## Language reference + +Comments start with '#' and extend to the end of the line. + +To include some other source file, use the special `include` comment (note the double-`#`, and no quotes around the file name): + +.Examples +``` +## include foo.gs +``` + +Numbers are 64 bit signed integers. Numerical and string constants are given in a C-like way. + +.Examples +``` +123 +-456 +0x4567 +"Hi there\n" +'\033' +'\x1b' +'\u20ac' +``` + +Strings are not zero-terminated and can contain any data (including zeros). Use `\xNN` to set arbitray binary values. +Use `\uNNNN` or `\UNNNNNNNN` to include UTF8-encoded Unicode characters. + +.Examples +``` +"1 Euro = 1 €\n" +"1 Euro = 1 \u20ac\n" +"1 Euro = 1 \xe2\x82\xac\n" +``` + +Logical operations return values of type bool. They are not identical with integers. + +.Examples +``` +true +false +``` + +There is a special value nil. It is not the same as 0. + +.Examples +``` +nil +``` + +### Primitive words + +* **+{+** - start code block [[code_start]] ++ +-- +** ( -- __code~1~__ ) +-- ++ +Put a reference to the following code block on the stack. The code block +starts after the opening `{` and extends to (and including) the matching +closing `}`. ++ +This special word is handled while converting the source code into binary code with `gfxboot-compile`. +For this reason, this is the only word that cannot be redefined. ++ +.Examples +``` + +{ "Hello!" show } +``` ++ +See also: xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+}+** - finish code block [[code_end]] ++ +-- +** ( -- ) +-- ++ +This marks the end of a code block. When the code is executed, the +interpreter leaves the current execution context and returns to the +parent context. ++ +.Examples +``` + +/hello { "Hello!" show } def +hello # print "Hello!" +``` ++ +See also: xref:code_start[+{+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+(+** - start hash definition [[hash_start]] ++ +-- +** ( -- __mark~1~__ ) ++ +__mark~1~__: hash start marker +-- ++ +Put hash start marker on stack. Hash definition is completed with ). ++ +.Examples +``` + +( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+)+** - finish hash definition [[hash_end]] ++ +-- +** ( __mark~1~__ __any~1~__ ... __any~n~__ -- __hash~1~__ ) ++ +__mark~1~__: array start marker ++ +__any~1~__ ... __any~n~__: some key - value pairs ++ +__hash~1~__: new hash +-- ++ +Search for __mark~1~__ on the stack and put everything between __mark~1~__ and TOS +into a hash. The elements are interpreted alternatingly as key and value. +If there's an odd number of elements on the stack, the last value is nil. ++ +.Examples +``` + +( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+[+** - start array definition [[array_start]] ++ +-- +** ( -- __mark~1~__ ) ++ +__mark~1~__: array start marker +-- ++ +Put array start marker on stack. Array definition is completed with ]. ++ +.Examples +``` + +[ 1 2 3 ] # array with 3 elements +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+]+** - finish array definition [[array_end]] ++ +-- +** ( __mark~1~__ __any~1~__ ... __any~n~__ -- __array~1~__ ) ++ +__mark~1~__: array start marker ++ +__any~1~__ ... __any~n~__: some elements ++ +__array~1~__: new array +-- ++ +Search for __mark~1~__ on the stack and put everything between __mark~1~__ and TOS +into an array. ++ +.Examples +``` + +[ 10 20 "some" "text" ] # array with 4 elements +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+abs+** - absolute value [[abs]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: |__int~1~__| ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: __bool~1~__ +-- ++ +Absolute value of __int~1~__ (change sign if __int~1~__ is negative). ++ +.Examples +``` + +For boolean 1 bit arithmetic the value is unchanged. + +-20 abs # 20 +true abs # true +``` ++ +See also: xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+add+** - addition [[add]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ + __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ ++ +** ( __array~1~__ __array~2~__ -- __array~3~__ ) ++ +__array~3~__: __array~2~__ appended to __array~1~__ ++ +** ( __hash~1~__ __hash~2~__ -- __hash~3~__ ) ++ +__hash~3~__: joined __hash~1~__ and __hash~2~__ ++ +** ( __string~1~__ __string~2~__ -- __string~3~__ ) ++ +__string~3~__: __string~2~__ appended to __string~1~__ +-- ++ +Add two numbers, or concatenate two arrays, or join two hashes, or concatenate two strings. ++ +For boolean 1 bit arithmetic this is equivalent to 'xor'. ++ +.Examples +``` + +10 20 add # 30 +true true add # false +[ 10 20 ] [ 30 40 ] add # [ 10 20 30 40 ] +( "foo" 10 ) ( "bar" 20 ) add # ( "bar" 20 "foo" 10 ) +"abc" "def" add # "abcdef" +``` ++ +See also: xref:abs[+abs+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+and+** - and [[and]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ and __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 and # 4 +true false and # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+blt+** - copy rectangular region [[blt]] ++ +-- +** ( __gstate~1~__ __gstate~2~__ -- ) +-- ++ +Copy from the drawing region of __gstate~2~__ to the drawing region of __gstate~1~__, at the drawing pos of __gstate~1~__. ++ +.Examples +``` + +/cat_pic gstate def +cat_pic "cat.jpg" readfile unpackimage setcanvas +0 0 setpos getgstate cat_pic blt # show cat picture +``` ++ +See also: xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+canvas+** - create canvas [[canvas]] ++ +-- +** ( __int~1~__ __int~2~__ -- __canvas~1~__ ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Create a new empty canvas of the specified size. ++ +.Examples +``` + +800 600 canvas +``` ++ +See also: xref:blt[+blt+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+cmp+** - compare [[cmp]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ <=> __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __int~4~__ ) ++ +__int~4~__: __bool~1~__ <=> __bool~2~__ ++ +** ( __string~1~__ __string~2~__ -- __int~5~__ ) ++ +__int~5~__: __string~1~__ <=> __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __int~6~__ ) ++ +__int~6~__: __any~1~__ <=> __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For +all other combinations the internal object id is compared. ++ +The result is -1, 1, 0 if the first argument is less than, greater than, +or equal to the second argument, respectively. ++ +.Examples +``` + +10 20 cmp # -1 +true false cmp # 1 +"abc" "abc" cmp # 0 +[ 10 20 ] [ 10 20 ] cmp # varies +0 false cmp # varies +0 nil cmp # varies +"abc" [ 10 ] cmp # varies + +/foo [ 10 20 ] def +/bar foo def +foo bar cmp # 0 +``` ++ +See also: xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+debug+** - start debug console [[debug]] ++ +-- +** ( -- ) +-- ++ +Stop code execution and start debug console. ++ +You can leave (and re-enter) the debug console with `^D` but note that this +doesn't resume program execution. Use the `run` (or `r`) console command for this. ++ +.Examples +``` + +/foo { debug 10 20 } def +foo # activate debug console when 'foo' is run +``` ++ +See also: xref:def[+def+], xref:gdef[+gdef+], xref:ldef[+ldef+] + +* **+def+** - define new word [[def]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +If __word~1~__ does not exist, define __word~1~__ in the current context. ++ +If __word~1~__ does already exist, redefine __word~1~__ in the context in which it is defined. ++ +.Examples +``` +/x 100 def # define x as 100 +/neg { -1 mul } def # define a function that negates its argument +``` ++ +See also: xref:debug[+debug+], xref:gdef[+gdef+], xref:ldef[+ldef+] + +* **+delete+** - delete an array, hash, or string element [[delete]] ++ +-- +** ( __array~1~__ __int~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +** ( __hash~1~__ __string~1~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +** ( __string~2~__ __int~2~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index +-- ++ +Delete the respective element of __array~1~__, __hash~1~__, or __string~2~__. The length +of __array~1~__ andstring_2 will be reduced by 1. ++ +Note that string constants are read-only and cannot be modified. ++ +.Examples +``` + +/x [ 10 20 30 ] def +x 1 delete # x is now [ 10 30 ] + +/y ( "foo" 10 "bar" 20 ) def +y "foo" delete # y is now ( "bar" 20 ) + +/z "ABC" mem def # mem is needed to create a writable copy +z 1 delete # z is now "AC" +``` ++ +See also: xref:get[+get+], xref:length[+length+], xref:put[+put+] + +* **+dim+** - get graphics object dimension [[dim]] ++ +-- +** ( __canvas~1~__ -- __int~1~__ __int~2~__ ) +** ( __font~1~__ -- __int~1~__ __int~2~__ ) +** ( __gstate~1~__ -- __int~1~__ __int~2~__ ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Get dimension of graphics object. For a canvas it is its size, for a +graphics state it is the size of the associated region, for a fixed size +font it is its glyph size, for proportional font the width is 0 and the +height is the font height. ++ +.Examples +``` + +getconsolegstate getcanvas dim # 800 600 +getconsolegstate dim # 640 480 +getconsolegstate getfont dim # 8 16 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+div+** - division [[div]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ / __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ / __bool~2~__ +-- ++ +Divide __int~1~__ by __int~2~__. ++ +You can do a 1 bit division with boolean values. Note that this will run +into a division by zero exception if __bool~2~__ is false. ++ +.Examples +``` + +200 30 div # 6 +true true div # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+dup+** - duplicate TOS [[dup]] ++ +-- +** ( __any~1~__ -- __any~1~__ __any~1~__ ) +-- ++ +Duplicate the top-of-stack element. ++ +.Examples +``` + +10 dup # 10 10 +``` ++ +See also: xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+eq+** - equal [[eq]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ == __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ == __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ == __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ == __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 eq # false +true false eq # false +"abc" "abc" eq # true +[ 10 20 ] [ 10 20 ] eq # false +0 false eq # false +0 nil eq # false +"abc" [ 10 ] eq # false + +/foo [ 10 20 ] def +/bar foo def +foo bar eq # true +``` ++ +See also: xref:cmp[+cmp+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+exch+** - swap upper two stack elements [[exch]] ++ +-- +** ( __any~1~__ __any~2~__ -- __any~2~__ __any~1~__ ) +-- ++ +Swap the two topmost stack elements. ++ +.Examples +``` + +10 20 exch # 20 10 +``` ++ +See also: xref:dup[+dup+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+exec+** - execute object [[exec]] ++ +-- +** ( __ref~1~__ -- ) ++ +__ref~1~__: word reference ++ +** ( __code~1~__ -- ) ++ +__code~1~__: code block +-- ++ +Executes the given code block or looks up and executes the word reference. ++ +.Examples +``` + +{ 10 20 } exec # 10 20 + +/foo "abc" def +foo # "abc" +/foo exec # "abc" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+exit+** - leave loop/repeat/for/forall loop [[exit]] ++ +-- +** ( -- ) +-- ++ +Exit from current loop. ++ +.Examples +``` + +0 1 10 { dup 4 eq { exit } if } for # 0 1 2 3 4 +``` ++ +See also: xref:exec[+exec+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+fillrect+** - draw filled rectangle [[fillrect]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Draw filled rectangle (using current color) at current position. The +rectangle is clipped at the current drawing region. ++ +.Examples +``` + +200 100 fillrect +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+for+** - run code block repeatedly, with counter [[for]] ++ +-- +** ( __int~1~__ __int~2~__ __int~3~__ __code~1~__ -- ) ++ +__int~1~__: start value ++ +__int~2~__: increment value ++ +__int~3~__: maximum value (inclusive) +-- ++ +Run __code~1~__ repeatedly and put the current counter value on the stack in every iteration. ++ +The counter starts with __int~1~__ and is incremented by __int~2~__ until it +reaches __int~3~__. The code block is executed with the start value and then +as long as the counter is less than or equal to the maximum value. ++ +The increment may be negative. In that case the loop is executed as long as the counter +is greater than or equal to the maximum value. ++ +If the increment is 0, the loop is not executed. ++ +.Examples +``` + +0 1 4 { } for # 0 1 2 3 4 +0 -2 -5 { } for # 0 -2 -4 +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+forall+** - loop over all elements [[forall]] ++ +-- +** ( __array~1~__ __code~1~__ -- ) +** ( __hash~1~__ __code~1~__ -- ) +** ( __string~1~__ __code~1~__ -- ) +-- ++ +Run __code~1~__ for each element of __array~1~__, __hash~1~__, or __string~1~__. ++ +For __array~1~__ and __string~1~__, each element is put on the stack and __code~1~__ is run. ++ +For __hash~1~__, each key and value pair are put on the stack and __code~1~__ is run. +The hash keys are sorted. ++ +Note that __string~1~__ is interpreted as a sequence of bytes, not UTF8-encoded characters. ++ +.Examples +``` + +[ 10 20 30 ] { } forall # 10 20 30 +( "foo" 10 "bar" 20 ) { } forall # "bar" 20 "foo" 10 +"ABC" { } forall # 65 66 67 +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+freeze+** - make object read-only [[freeze]] ++ +-- +** ( __any~1~__ -- __any~1~__ ) +-- ++ +Make any object read-only. A read-only object cannot be modified. ++ +Note that string constants are read-only by default. ++ +.Examples +``` + +[ 10 20 30 ] freeze # [ 10 20 30 ] +0 delete # raises 'readonly' exception +``` ++ +See also: xref:readfile[+readfile+], xref:string[+string+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+gdef+** - define new global word [[gdef]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +Define __word~1~__ in the global context. ++ +.Examples +``` +/foo 300 gdef # define global word foo as 300 +``` ++ +See also: xref:debug[+debug+], xref:def[+def+], xref:ldef[+ldef+] + +* **+ge+** - greater or equal [[ge]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ >= __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ >= __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ >= __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ >= __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 ge # false +true false ge # true +"abd" "abc" ge # true +[ 10 20 ] [ 10 20 ] ge # varies +0 false ge # varies +0 nil ge # varies +"abc" [ 10 ] ge # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+get+** - get array, hash, or string element [[get]] ++ +-- +** ( __array~1~__ __int~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +** ( __hash~1~__ __string~1~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +** ( __string~2~__ __int~2~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index +-- ++ +Read the respective element of __array~1~__, __hash~1~__, or __string~2~__. ++ +.Examples +``` + +[ 10 20 30 ] 2 get # 30 +( "foo" 10 "bar" 20 ) "foo" get # 10 +"ABC" 1 get # 66 +``` ++ +See also: xref:delete[+delete+], xref:length[+length+], xref:put[+put+] + +* **+getbgcolor+** - get background color [[getbgcolor]] ++ +-- +** ( -- __int~1~__ ) ++ +__int~1~__: color +-- ++ +Return current background color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +getcolor # 0 (black) +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getcanvas+** - get canvas [[getcanvas]] ++ +-- +** ( __gstate~1~__ -- __canvas~1~__ ) +** ( __gstate~1~__ -- __nil__ ) ++ +__gstate~1~__: graphics state ++ +__canvas~1~__: canvas object +-- ++ +Get canvas object from graphics state. A canvas is a memory area with +associated width and height. All drawing operations are done on canvas +objects. If no canvas is associated with the graphics state, return __nil__. ++ +.Examples +``` + +getgstate getcanvas dim # 800 600 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getcolor+** - get drawing color [[getcolor]] ++ +-- +** ( -- __int~1~__ ) ++ +__int~1~__: color +-- ++ +Return current drawing color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +getcolor # 0xffffff (white) +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getconsolegstate+** - get graphics state of the debug console [[getconsolegstate]] ++ +-- +** ( -- __gstate~1~__ ) +** ( -- __nil__ ) +-- ++ +Get graphics state of the debug console. If none has been set, return __nil__. ++ +.Examples +``` + +/saved_state getconsolegstate def # save current debug console state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getdict+** - get active dictionary [[getdict]] ++ +-- +** ( -- __hash~1~__ ) +** ( -- __nil__ ) ++ +__hash~1~__: dictionary +-- ++ +Return the currently active dictionary or __nil__, if the current context +does not (yet) have a dictionary. ++ +A dictionary will only be created on demand - that is, the first time a +word is defined in the current context. ++ +When a program is started the global context is created containing a +dictionary with all primitive words. ++ +.Examples +``` + +/foo { getdict } def +foo # nil + +/bar { /x 10 ldef getdict } def +bar # ( /x 10 ) +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+getfont+** - get font [[getfont]] ++ +-- +** ( __gstate~1~__ -- __font~1~__ ) +** ( __gstate~1~__ -- __nil__ ) ++ +__gstate~1~__: graphics state ++ +__font~1~__: font +-- ++ +Get font from graphics state. ++ +.Examples +``` + +getgstate getfont # current font +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getgstate+** - get graphics state [[getgstate]] ++ +-- +** ( -- __gstate~1~__ ) +** ( -- __nil__ ) +-- ++ +Get current graphics state. If none has been set, return __nil__. ++ +The graphics state consists of a canvas to draw into, a region describing +a rectangular drawing and clipping area in that canvas, a drawing +position (relative to the drawing region), drawing color, background +color (for text), and a text font. ++ +.Examples +``` + +/saved_state getgstate def # save current graphics state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getparent+** - get parent of context, font, or hash [[getparent]] ++ +-- +** ( __context~1~__ -- __context~2~__ ) ++ +__context~2~__: parent of __context~1~__ or nil ++ +** ( __font~1~__ -- __font~2~__ ) ++ +__font~2~__: parent of __font~1~__ or nil ++ +** ( __hash~1~__ -- __hash~2~__ ) ++ +__hash~2~__: parent of __hash~1~__ or nil +-- ++ +If a word lookup fails in a context, the lookup continues in the parent +context. ++ +If a glyph lookup fails in a font, the lookup continues in the parent +font. ++ +If a key cannot be found in a hash, the lookup continues in the parent +hash. ++ +.Examples +``` + +/x ( "foo" 10 "bar" 20 ) def +/y ( "zap" 30 ) def +x getparent # nil +x y setparent +x getparent # ( "zap" 30 ) +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+getpixel+** - read pixel [[getpixel]] ++ +-- +** ( -- __int~1~__ ) +** ( -- __nil__ ) ++ +__int~1~__: color +-- ++ +Read pixel at drawing position from canvas in current graphics state. If +the position is outside the drawing region, return __nil__. ++ +.Examples +``` + +getpixel +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getpos+** - get drawing position [[getpos]] ++ +-- +** ( -- __int~1~__ __int~2~__ ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Return current drawing position. The position is relative to the drawing region in the graphics state. ++ +.Examples +``` + +getpos # 0 0 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getregion+** - get drawing region [[getregion]] ++ +-- +** ( __gstate~1~__ -- __int~1~__ __int~2~__ __int~3~__ __int~4~__ ) ++ +__gstate~1~__: graphics state ++ +__int~1~__: x ++ +__int~2~__: y ++ +__int~3~__: width ++ +__int~4~__: height +-- ++ +Get drawing region associated with graphics state. Any drawing operation +will be relative to this region. Graphics output will be clipped at the +region boundaries. ++ +.Examples +``` + +getgstate getregion # 0 0 800 600 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+gstate+** - create graphics state [[gstate]] ++ +-- +** ( -- __gstate~1~__ ) +-- ++ +Create a new empty graphics state gate_1. ++ +.Examples +``` + +gstate +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+gt+** - greater than [[gt]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ > __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ > __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ > __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ > __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 gt # false +true false gt # true +"abd" "abc" gt # true +[ 10 20 ] [ 10 20 ] gt # varies +0 false gt # varies +0 nil gt # varies +"abc" [ 10 ] gt # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+if+** - conditional execution [[if]] ++ +-- +** (__bool~1~__ __code~1~__ -- ) +** (__int~1~__ __code~1~__ -- ) +** (__nil__ __code~1~__ -- ) +** (__any~1~__ __code~1~__ -- ) ++ +__code~1~__: code block to run if condition evaluates to 'true' +-- ++ +The condition is false for: boolean false, integer 0, or __nil__. In all other cases it is true. ++ +.Examples +``` + +true { "ok" show } if # "ok" +50 { "ok" show } if # "ok" +nil { "ok" show } if # shows nothing +"" { "ok" show } if # "ok" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+ifelse+** - conditional execution [[ifelse]] ++ +-- +** (__bool~1~__ __code~1~__ __code~2~__ -- ) +** (__int~1~__ __code~1~__ __code~2~__ -- ) +** (__nil__ __code~1~__ __code~2~__ -- ) +** (__any~1~__ __code~1~__ __code~2~__ -- ) ++ +__code~1~__: code block to run if condition evaluates to 'true' ++ +__code~2~__: code block to run if condition evaluates to 'false' +-- ++ +The condition is false for: boolean false, integer 0, or __nil__. In all other cases it is true. ++ +.Examples +``` + +false { "ok" } { "bad" } ifelse show # "bad" +20 { "ok" } { "bad" } ifelse show # "ok" +nil { "ok" } { "bad" } ifelse sho # "bad" +"" { "ok" } { "bad" } ifelse show # "ok" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+index+** - copy stack element [[index]] ++ +-- +** ( __any~n~__ ... __any~0~__ __int~1~__ -- __any~n~__ ... __any~0~__ __any~n~__ ) ++ +__int~1~__: element position on stack (n is equal to __int~1~__) +-- ++ +Copy the __int~1~__-th-from-top element on the top-of-stack. ++ +.Examples +``` + +10 20 30 40 3 index # 10 20 30 40 10 + +/dup { 0 index } def # definition of 'dup' + +/over { 1 index } def # definition of 'over' +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+ldef+** - define new local word [[ldef]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +Define __word~1~__ in the current local context. ++ +.Examples +``` +/foo 200 ldef # define local word foo as 200 +``` ++ +See also: xref:debug[+debug+], xref:def[+def+], xref:gdef[+gdef+] + +* **+le+** - less or equal [[le]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ <= __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ <= __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ <= __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ <= __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 le # true +true false le # false +"abd" "abc" le # false +[ 10 20 ] [ 10 20 ] le # varies +0 false le # varies +0 nil le # varies +"abc" [ 10 ] le # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:lt[+lt+], xref:ne[+ne+] + +* **+length+** - get size of array, hash, or string [[length]] ++ +-- +** ( __array~1~__ -- __int~1~__ ) ++ +__int~1~__: number of elements in __array~1~__ ++ +** ( __hash~1~__ -- __int~2~__ ) ++ +__int~2~__: number of key - value pairs in __hash~1~__ ++ +** ( __string~1~__ -- __int~3~__ ) ++ +__int~3~__: number of bytes in __string~1~__ +-- ++ +Put the length of __array~1~__, __hash~1~__, or __string~1~__ on the stack. ++ +.Examples +``` + +[ 10 20 30 ] length # 3 +( "foo" 10 "bar" 20 ) length # 2 +"ABC" length # 3 +``` ++ +See also: xref:delete[+delete+], xref:get[+get+], xref:put[+put+] + +* **+lineto+** - draw line [[lineto]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Draw line from current position to the specified x and y coordinates +using the current color. The drawing position is updated to the end +position. Line segments outside the drawing region are not drawn. ++ +.Examples +``` + +100 200 lineto +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+loop+** - endless loop [[loop]] ++ +-- +** ( __code~1~__ -- ) +-- ++ +Repeat __code~1~__ forever until you exit the loop explicitly. ++ +.Examples +``` + +{ "Help!" show } loop +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+lt+** - less than [[lt]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ < __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ < __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ < __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ < __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 lt # true +true false lt # false +"abd" "abc" lt # false +[ 10 20 ] [ 10 20 ] lt # varies +0 false lt # varies +0 nil lt # varies +"abc" [ 10 ] lt # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:ne[+ne+] + +* **+max+** - maximum [[max]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: maximum(__int~1~__, __int~2~__) ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ or __bool~2~__ ++ +__int~3~__ is the larger value of __int~1~__ and __int~2~__. +-- ++ +For boolean 1 bit arithmetic this is equivalent to 'or' ++ +.Examples +``` + +10 20 max # 20 +true false max # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+min+** - minimum [[min]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: minimum(__int~1~__, __int~2~__) ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ ++ +__int~3~__ is the smaller value of __int~1~__ and __int~2~__. +-- ++ +For boolean 1 bit arithmetic this is equivalent to 'and' ++ +.Examples +``` + +10 20 min # 10 +true false min # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+mod+** - remainder [[mod]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ % __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ / __bool~2~__ ++ +__int~3~__ is the remainder dividing __int~1~__ by __int~2~__. +-- ++ +You can get the remainder from a 1 bit division with boolean values. Note +that this will run into a division by zero exception if __bool~2~__ is false. ++ +.Examples +``` + +200 30 mod # 20 +true true mod # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+mul+** - multiplication [[mul]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ * __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ +-- ++ +Multiply __int~1~__ by __int~2~__. ++ +For boolean 1 bit arithmetic this is equivalent to 'and'. ++ +.Examples +``` + +20 30 mul # 600 +true false mul # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+ne+** - not equal [[ne]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ != __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ != __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ != __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ != __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 ne # true +true false ne # true +"abc" "abc" ne # false +[ 10 20 ] [ 10 20 ] ne # true +0 false ne # true +0 nil ne # true +"abc" [ 10 ] ne # true + +/foo [ 10 20 ] def +/bar foo def +foo bar ne # false +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+] + +* **+neg+** - negation [[neg]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: -__int~1~__ ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: -__bool~1~__ +-- ++ +Negate __int~1~__ (change sign). ++ +For boolean 1 bit arithmetic the value is unchanged (this is not a 'not' operation). ++ +.Examples +``` + +20 neg # -20 +true neg # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+newfont+** - create font object [[newfont]] ++ +-- +** ( __string~1~__ -- __font~1~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: font data ++ +__font~1~__: font object +-- ++ +Parse font data in __string~1~__ and create font object. If __string~1~__ does not +contain valid font data, return __nil__. ++ +.Examples +``` + +/foo_font "foo.fnt" readfile newfont def # create font from file "foo.fnt" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+not+** - not [[not]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: -__int~1~__ - 1 ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: !__bool~1~__ ++ +-- ++ +.Examples +``` + +20 not # -21 +true not # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+or+** - or [[or]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ or __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ or __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 or # 15 +true false or # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+over+** - copy TOS-1 to TOS [[over]] ++ +-- +** ( __any~1~__ __any~2~__ -- __any~1~__ __any~2~__ __any~1~__ ) +-- ++ +Put a copy of the second-from-top element on the top-of-stack. ++ +.Examples +``` + +10 20 over # 10 20 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+pop+** - remove TOS [[pop]] ++ +-- +** ( __any~1~__ -- ) +-- ++ +Remove the top-of-stack element. ++ +.Examples +``` + +10 20 pop # 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:roll[+roll+], xref:rot[+rot+] + +* **+put+** - set array, hash, or string element [[put]] ++ +-- +** ( __array~1~__ __int~1~__ __any~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +__any~1~__: new value ++ +** ( __hash~1~__ __string~1~__ __any~2~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +__any~2~__: new value ++ +** ( __string~2~__ __int~2~__ __int~3~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index ++ +__int~3~__: new value +-- ++ +Set the respective element of __array~1~__, __hash~1~__, or __string~2~__. ++ +Note that string constants are read-only and cannot be modified. ++ +.Examples +``` + +/x [ 10 20 30 ] def +x 2 40 put # x is now [ 10 20 40 ] + +/y ( "foo" 10 "bar" 20 ) def +y "bar" 40 put # y is now ( "foo" 10 "bar" 40 ) + +/z "ABC" mem def # mem is needed to create a writable copy +z 1 68 put # z is now "ADC" +``` ++ +See also: xref:delete[+delete+], xref:get[+get+], xref:length[+length+] + +* **+putpixel+** - set pixel [[putpixel]] ++ +-- +** ( -- ) +-- ++ +Set pixel with current color at drawing position in canvas in current +graphics state. If the position is outside the drawing region, nothing is +drawn. ++ +.Examples +``` + +setpixel +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+readfile+** - read file [[readfile]] ++ +-- +** ( __string~1~__ -- __string~2~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: file name ++ +__string~2~__: file content +-- ++ +Read entire file and return its content. If the file could not be read, return __nil__. ++ +.Examples +``` + +"foo" readfile +``` ++ +See also: xref:freeze[+freeze+], xref:string[+string+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+repeat+** - repeat code block [[repeat]] ++ +-- +** ( __int~1~__ __code~1~__ -- ) +-- ++ +Repeat __code~1~__ __int~1~__ times. If __int~1~__ is less or equal to 0, __code~1~__ is not run. ++ +.Examples +``` + +3 { "Help!" show } repeat # "Help!Help!Help!" +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:return[+return+], xref:run[+run+] + +* **+return+** - leave current function [[return]] ++ +Exit from currently running function. ++ +.Examples +``` + +/foo { dup nil eq { return } if show } def +"abc" foo # shows "abc" +nil foo # does nothing +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:run[+run+] + +* **+roll+** - rotate stack elements [[roll]] ++ +-- +** ( __any~1~__ ... __any~n~__ __int~1~__ __int~2~__ -- __any~x~__ ... __any~y~__ ) ++ +__int~1~__: number of stack elements to rotate (equal to index n) ++ +__int~2~__: rotation amount +-- ++ +Rotate the n elements __any~1~__ ... __any~n~__. The new positions are calculated as follows: ++ +x = (1 - __int~2~__) mod __int~1~__ ++ +y = (n - __int~2~__) mod __int~1~__ ++ +This can be seen as rotating __int~1~__ elements up by __int~2~__ resp. down by -__int~2~__. ++ +.Examples +``` + +10 20 30 40 50 5 2 roll # 40 50 10 20 30 + +/rot { 3 -1 roll } def # definition of 'rot' +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:rot[+rot+] + +* **+rot+** - rotate upper three stack elements [[rot]] ++ +-- +** ( __any~1~__ __any~2~__ __any~3~__ -- __any~2~__ __any~3~__ __any~1~__ ) +-- ++ +Rotate __any~1~__ to the top-of-stack. ++ +.Examples +``` + +10 20 30 rot # 20 30 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+] + +* **+run+** - run code [[run]] ++ +-- +** ( __string~1~__ -- ) ++ +__string~1~__: binary code +-- ++ +Load binary code and run it. ++ +Note: unlike 'exec' this does not open a new context but replaces the +currently running code with the new one. ++ +.Examples +``` + +"new_program" readfile run +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+setbgcolor+** - set background color [[setbgcolor]] ++ +-- +** ( __int~1~__ -- ) ++ +__int~1~__: color +-- ++ +Set current background color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +0xff00 setcolor # green +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setcanvas+** - set canvas [[setcanvas]] ++ +-- +** ( __gstate~1~__ __canvas~1~__ -- ) +** ( __gstate~1~__ __nil__ -- ) ++ +__gstate~1~__: graphics state ++ +__canvas~1~__: canvas object +-- ++ +Set canvas of graphics state. A canvas is a memory area with +associated width and height. All drawing operations are done on canvas +objects. If __nil__ is passed, the canvas is removed from the graphics state. ++ +The drawing region of __gstate~1~__ is adjusted to match the canvas size. The +drawing position is reset to x = 0, y = 0. ++ +.Examples +``` + +getgstate 800 600 canvas setcanvas +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setcolor+** - set drawing color [[setcolor]] ++ +-- +** ( __int~1~__ -- ) ++ +__int~1~__: color +-- ++ +Set current drawing color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +0xff0000 setcolor # red +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setconsolegstate+** - set graphics state of the debug console [[setconsolegstate]] ++ +-- +** ( __gstate~1~__ -- ) +** ( __nil__ -- ) +-- ++ +Set graphics state of the debug console. If __nil__ is passed, the current state is removed. ++ +.Examples +``` + +/saved_state getconsolegstate def +... +saved_state setconsolegstate # restore saved debug console state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setdict+** - set active dictionary [[setdict]] ++ +-- +** ( __hash~1~__ -- ) +** ( __nil__ -- ) ++ +__hash~1~__: new active dictionary +-- ++ +Set the currently active dictionary. With __nil__, the dictionary is removed +from the current context. ++ +.Examples +``` + +/foo { /x 10 ldef x } def +foo # 10 + +/bar { ( /x 10 ) setdict x } def +bar # 10 +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setparent[+setparent+] + +* **+setfont+** - set font [[setfont]] ++ +-- +** ( __gstate~1~__ __font~1~__ -- ) +** ( __gstate~1~__ __nil__ -- ) ++ +__gstate~1~__: graphics state ++ +__font~1~__: font +-- ++ +Set font in graphics state. If __nil__ is passed, any font is removed from the graphics state. ++ +.Examples +``` + +/foo_font "foo.fnt" readfile newfont def +getgstate foo_font setfont # use "foo.fnt" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setgstate+** - set graphics state [[setgstate]] ++ +-- +** ( __gstate~1~__ -- ) +** ( __nil__ -- ) +-- ++ +Set current graphics state. If __nil__ is passed, the current state is removed. ++ +The graphics state consists of a canvas to draw into, a region describing +a rectangular drawing and clipping area in that canvas, a drawing +position (relative to the drawing region), drawing color, background +color (for text), and a text font. ++ +.Examples +``` + +/saved_state getgstate def # save current graphics state +... +saved_state setgstate # restore saved graphics state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setparent+** - set parent of context, font, or hash [[setparent]] ++ +-- +** ( __context~1~__ __context~2~__ -- ) +** ( __context~1~__ __nil__ -- ) ++ +__context~2~__: new parent of __context~1~__ ++ +** ( __font~1~__ __font~2~__ -- ) +** ( __font~1~__ __nil__ -- ) ++ +__font~2~__: new parent of __font~1~__ ++ +** ( __hash~1~__ __hash~2~__ -- ) +** ( __hash~1~__ __nil__ -- ) ++ +__hash~2~__: new parent of __hash~1~__ +-- ++ +If __nil__ is used as second argument, any existing parent link is removed. ++ +If a word lookup fails in a context, the lookup continues in the parent +context. ++ +If a glyph lookup fails in a font, the lookup continues in the parent +font. ++ +If a key cannot be found in a hash, the lookup continues in the parent +hash. ++ +.Examples +``` + +/x ( "foo" 10 "bar" 20 ) def +/y ( "zap" 30 ) def +x "zap" get # nil +x y setparent +x "zap" get # 30 +x nil setparent +x "zap" get # nil +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+] + +* **+setpos+** - set drawing position [[setpos]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Set drawing position. The position is relative to the drawing region in the graphics state. ++ +.Examples +``` + +20 30 setpos +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setregion+** - set drawing region [[setregion]] ++ +-- +** ( __gstate~1~__ __int~1~__ __int~2~__ __int~3~__ __int~4~__ -- ) ++ +__gstate~1~__: graphics state ++ +__int~1~__: x ++ +__int~2~__: y ++ +__int~3~__: width ++ +__int~4~__: height +-- ++ +Set drawing region associated with graphics state. Any drawing operation +will be relative to this region. Graphics output will be clipped at the +region boundaries. ++ +.Examples +``` + +getgstate 10 10 200 100 setregion +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+shl+** - shift left [[shl]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ << __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and !__bool~2~__ ++ +-- ++ +.Examples +``` + +1 4 shl # 16 +true false shl # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+show+** - show [[show]] ++ +-- +** ( __string~1~__ -- ) +-- ++ +Print __string~1~__ at current cursor position in canvas associated with +current graphics state. ++ +The cursor position is advanced to point at the end of the printed text. +Newline ('\x0a') and carriage return ('\x0d') characters are interpreted +and the cursor position is adjusted relative to the starting position. ++ +.Examples +``` + +"Hello!" show # print "Hello!" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:unpackimage[+unpackimage+] + +* **+shr+** - shift right [[shr]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ >> __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and !__bool~2~__ ++ +-- ++ +.Examples +``` + +16 4 shr # 1 +true false shr # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:sub[+sub+], xref:xor[+xor+] + +* **+string+** - create or duplicate string [[string]] ++ +-- +** ( __int~1~__ -- __string~1~__ ) ++ +__int~1~__: length ++ +__string~1~__: new string with length __int~1~__ +** ( __string~2~__ -- __string~3~__ ) ++ +__string~2~__: string to duplicate ++ +__string~3~__: copy of __string~2~__ +-- ++ +There are two variants: given a number, a string of that length is +created and initialized with zeros; given a string, a copy of that string is created. ++ +__int~1~__ may be 0 to create a zero-length string. ++ +Note: duplication works for all string-like objects. For example for word references and even code blocks. ++ +.Examples +``` + +2 string # creates an empty string of length 2: "\x00\x00" +"abc" string # creates a copy of "abc" + +# even this works: +/abc mem # a copy of /abc +{ 10 20 } mem # a copy of the code block { 10 20 } +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+sub+** - subtraction [[sub]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ - __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ +-- ++ +Subtract __int~2~__ from __int~1~__. ++ +For boolean 1 bit arithmetic this is equivalent to 'xor'. ++ +.Examples +``` + +100 30 sub # 70 +false true sub # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:xor[+xor+] + +* **+unpackimage+** - unpack image [[unpackimage]] ++ +-- +** ( __string~1~__ -- __canvas~1~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: image file data +-- ++ +Unpacks image and returns a canvas object with the image or __nil__ if the +data dos not contain image data. ++ +.Examples +``` + +"foo.jpg" readfile unpackimage +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+] + +* **+utf8decode+** - decode Unicode string [[utf8decode]] ++ +-- +** (__string~1~__ -- __array~1~__ ) ++ +__string~1~__: UTF8-encoded string ++ +__array~1~__: array with decoded chars +-- ++ +The array contains one element for each UTF8-encoded char. If __string~1~__ +contains non-UTF8-chars they are represented as the negated 8-bit value. ++ +.Examples +``` + +"ABC" utf8decode # [ 65 66 67 ] +"Ä €" utf8decode # [ 196 32 8364 ] +"A\xf0B" utf8decode # [ 65 -240 66 ] +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:string[+string+], xref:utf8encode[+utf8encode+] + +* **+utf8encode+** - encode Unicode string [[utf8encode]] ++ +-- +** (__array~1~__ -- __string~1~__ ) ++ +__array~1~__: array with decoded chars ++ +__string~1~__: UTF8-encoded string +-- ++ +The array contains one element for each UTF8-encoded char. If __string~1~__ +should contain non-UTF8-chars they are represented as the negated 8-bit +value in __array~1~__. ++ +.Examples +``` + +[ 65 66 67 ] utf8encode # "ABC" +[ 196 32 8364 ] utf8encode # "Ä €" +[ 65 -240 66 ] utf8encode # "A\xf0B" +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:string[+string+], xref:utf8decode[+utf8decode+] + +* **+xor+** - exclusive or [[xor]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ xor __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 xor # 11 +true false or # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+] + + diff --git a/doc/reference_template b/doc/reference_template new file mode 100644 index 0000000..fd747a1 --- /dev/null +++ b/doc/reference_template @@ -0,0 +1,52 @@ +## Language reference + +Comments start with '#' and extend to the end of the line. + +To include some other source file, use the special `include` comment (note the double-`#`, and no quotes around the file name): + +.Examples +``` +## include foo.gs +``` + +Numbers are 64 bit signed integers. Numerical and string constants are given in a C-like way. + +.Examples +``` +123 +-456 +0x4567 +"Hi there\n" +'\033' +'\x1b' +'\u20ac' +``` + +Strings are not zero-terminated and can contain any data (including zeros). Use `\xNN` to set arbitray binary values. +Use `\uNNNN` or `\UNNNNNNNN` to include UTF8-encoded Unicode characters. + +.Examples +``` +"1 Euro = 1 €\n" +"1 Euro = 1 \u20ac\n" +"1 Euro = 1 \xe2\x82\xac\n" +``` + +Logical operations return values of type bool. They are not identical with integers. + +.Examples +``` +true +false +``` + +There is a special value nil. It is not the same as 0. + +.Examples +``` +nil +``` + +### Primitive words + +PRIMITIVE_WORD_LIST diff --git a/doc/screen_01.png b/doc/screen_01.png new file mode 100644 index 0000000000000000000000000000000000000000..852af0dd4c6ef1f2e8f3cfcd7db5f82f74750b7d GIT binary patch literal 529927 zcmV)$K#sqOP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 z 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

bvhdZm$6Jp?FnpY6u~6j3H)1 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 z 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

&NZh%wVDx&jgLpd&LQ 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%0D_Q9o8M4+L(vcx2VLYzeelDk)J=kpns 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

7ywi; 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 NVN>wW&6=Nd8@BOZu|<)1oK{C-4ozO#0;lzh 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

BL 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

5nrJAvwI?b- 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

LFZ&Wzhh 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 literal 0 HcmV?d00001 diff --git a/files/main.gs b/files/main.gs new file mode 100644 index 0000000..2833fb2 --- /dev/null +++ b/files/main.gs @@ -0,0 +1,29 @@ +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image gstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos +image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0xffff00 setcolor + +getgstate cfont setfont +50 50 setpos "Some font samples" show + +0x00ffffff setcolor + +getgstate cfont setfont +50 100 setpos text show + +getgstate bar setfont +50 130 setpos text show + +getgstate foo setfont +50 180 setpos text show diff --git a/files/main_01.gs b/files/main_01.gs new file mode 100644 index 0000000..10f2ea6 --- /dev/null +++ b/files/main_01.gs @@ -0,0 +1,34 @@ +/font1 getconsolegstate getfont def +/font2 "font2.psfu" readfile newfont def +font2 font1 setparent +getgstate font1 setfont + +-50 -20 setpos + +getgstate 20 20 155 100 setregion + +"XXX adasdas X\nXX€\n" show +"--\x00\x00--\n" show +"Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software." show + +/istate2 newgstate def +istate2 "katze_800.jpg" readfile unpackimage setcanvas +istate2 200 100 300 200 setregion + +getgstate 0 0 1000 1000 setregion + +50 50 setpos getgstate istate2 blt + +getgstate 10 10 200 200 setregion + +0xc0ff0000 setcolor + +60 1 80 { + /y exch def + 50 1 100 { + y setpos putpixel getpixel pop + } for +} for \ No newline at end of file diff --git a/files/main_02.gs b/files/main_02.gs new file mode 100644 index 0000000..714ae2e --- /dev/null +++ b/files/main_02.gs @@ -0,0 +1,11 @@ +/foo_2 { + true { 30 return 40 } if +} def + +/foo_3 { + 3 { 7 debug } repeat +} def + +foo_2 + +foo_3 diff --git a/files/main_03.gs b/files/main_03.gs new file mode 100644 index 0000000..dd93a84 --- /dev/null +++ b/files/main_03.gs @@ -0,0 +1,62 @@ +/image "katze_800.jpg" readfile unpackimage def +/istate newgstate def +getgstate getcanvas setcanvas istate setgstate image setcanvas setgstate + +10 10 200 200 setregion +getgstate istate blt +0x00ff0000 setcolor + +/rlineto { + getpos + 4 1 roll add + 3 1 roll add exch + lineto +} def + +100 100 setpos 100 0 rlineto + +100 100 setpos 100 30 rlineto +100 100 setpos 100 50 rlineto +100 100 setpos 100 80 rlineto + +100 100 setpos 100 100 rlineto + +100 100 setpos 80 100 rlineto +100 100 setpos 50 100 rlineto +100 100 setpos 30 100 rlineto + +100 100 setpos 0 100 rlineto + +100 100 setpos -30 100 rlineto +100 100 setpos -50 100 rlineto +100 100 setpos -80 100 rlineto + +100 100 setpos -100 100 rlineto + +100 100 setpos -100 80 rlineto +100 100 setpos -100 50 rlineto +100 100 setpos -100 30 rlineto + +100 100 setpos -100 0 rlineto + +100 100 setpos -100 -30 rlineto +100 100 setpos -100 -50 rlineto +100 100 setpos -100 -80 rlineto + +100 100 setpos -100 -100 rlineto + +100 100 setpos -80 -100 rlineto +100 100 setpos -50 -100 rlineto +100 100 setpos -30 -100 rlineto + +100 100 setpos 0 -100 rlineto + +100 100 setpos 30 -100 rlineto +100 100 setpos 50 -100 rlineto +100 100 setpos 80 -100 rlineto + +100 100 setpos 100 -100 rlineto + +100 100 setpos 100 -80 rlineto +100 100 setpos 100 -50 rlineto +100 100 setpos 100 -30 rlineto diff --git a/files/main_04.gs b/files/main_04.gs new file mode 100644 index 0000000..68629ff --- /dev/null +++ b/files/main_04.gs @@ -0,0 +1,27 @@ +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image newgstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0x00ffffff setcolor + +20 20 setpos +getgstate cfont setfont +text show + +20 60 setpos +getgstate bar setfont +text show + +20 100 setpos +getgstate foo setfont +text show + diff --git a/gfxboot b/gfxboot new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/gfxboot @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/gfxboot-compile.c b/gfxboot-compile.c new file mode 100644 index 0000000..f5cb898 --- /dev/null +++ b/gfxboot-compile.c @@ -0,0 +1,1919 @@ +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include + +// initial vocabulary (note: "{" & "}" are special) +#define WITH_PRIM_NAMES 1 +#define WITH_TYPE_NAMES 1 +#include "vocabulary.h" + +#define COMMENT_CHAR '#' + +#define MAX_INCLUDE 16 + +typedef struct { + unsigned size; + unsigned char *data; + unsigned real_size; + unsigned char *ptr; + char *name; + int line; +} file_data_t; + +struct option options[] = { + { "create", 1, NULL, 'c' }, + { "show", 0, NULL, 's' }, + { "log", 1, NULL, 'l' }, + { "opt", 0, NULL, 'O' }, + { "lib", 1, NULL, 'L' }, + { "help", 0, NULL, 'h' }, + { } +}; + +typedef struct { + char *name; + type_t type; + int line; + int del, ref, ref_idx, ref_ind, def, def_idx, def_ind, ref0, ref0_idx; + struct { + unsigned char *p; + unsigned u; + unsigned p_len; + } value; +} dict_t; + +typedef struct { + char *name; + type_t type; + unsigned ofs; + unsigned size; + unsigned xref_to; + unsigned duplicate:1; + int line, incl_level; + struct { + unsigned char *p; + uint64_t u; + unsigned p_len; + } value; + unsigned char *enc; +} code_t; + +void help(void); +file_data_t read_file(char *name); +void fix_pal(unsigned char *pal, unsigned shade1, unsigned shade2, unsigned char *rgb); +int write_data(char *name); +void encode_number(unsigned char *enc, uint64_t val, unsigned len); +uint64_t decode_number(unsigned char *data, unsigned len); +void add_data(file_data_t *d, void *buffer, unsigned size); +code_t *new_code(void); +dict_t *new_dict(void); +int show_info(char *name); +int get_hex(char *s, unsigned len, unsigned *val); +char *utf8_encode(unsigned uc); +int utf8_decode(char **s); +char *utf8_quote(unsigned uc); +char *next_word(char **ptr, int *len); +void parse_comment(char *comment, file_data_t *incl); +int find_in_dict(char *name); +int translate(int pass); +int parse_config(char *name, char *log_file); +void optimize_dict(FILE *lf); +unsigned skip_code(unsigned pos); +unsigned next_code(unsigned pos); +int optimize_code(FILE *lf); +int optimize_code1(FILE *lf); +int optimize_code2(FILE *lf); +int optimize_code3(FILE *lf); +int optimize_code4(FILE *lf); +int optimize_code5(FILE *lf); +int optimize_code6(FILE *lf); +void log_code(FILE *lf, int style); +int decompile(unsigned char *data, unsigned size); + +int config_ok = 0; + +file_data_t pscode = {}; +file_data_t dict_file = {}; + +dict_t *dict = NULL; +unsigned dict_size = 0; +unsigned dict_max_size = 0; + +unsigned prim_words = sizeof prim_names / sizeof *prim_names; + +code_t *code = NULL; +unsigned code_size = 0; +unsigned code_max_size = 0; + +// current config line +int line = 1; + +struct { + unsigned verbose; + unsigned optimize; + unsigned show:1; + char *file; + char *log_file; + char *lib_path[2]; +} opt = { lib_path: { NULL, "/usr/share/gfxboot" } }; + +int main(int argc, char **argv) +{ + int i; + + opterr = 0; + + while((i = getopt_long(argc, argv, "c:sfhL:l:O:v", options, NULL)) != -1) { + switch(i) { + case 'c': + opt.file = optarg; + break; + + case 's': + opt.show = 1; + break; + + case 'l': + opt.log_file = optarg; + break; + + case 'L': + opt.lib_path[0] = optarg; + break; + + case 'O': + opt.optimize = strtoul(optarg, NULL, 0); + break; + + case 'v': + opt.verbose++; + break; + + default: + help(); + return 0; + } + } + + argc -= optind; argv += optind; + + if(opt.file && argc <= 1) { + if(parse_config(argc ? *argv : "-", opt.log_file)) return 1; + return write_data(opt.file); + } + + if(opt.show && argc <= 1) { + return show_info(argc ? *argv : "-"); + } + + help(); + + return 1; +} + + +void help() +{ + fprintf(stderr, "%s", + "Usage: gfxboot-compile [OPTIONS] SOURCE\n" + "Compile/decompile gfxboot2 script to byte code.\n" + "Options:\n" + " -c, --create FILE Compile SOURCE to FILE.\n" + " -l, --log LOGFILE Write compile log to LOGFILE.\n" + " -s, --show Decompile SOURCE.\n" + " -L, --lib PATH Set include file search path to PATH.\n" + " -O, --opt LEVEL Optimization level (0 - 3).\n" + " -v, --verbose Create more verbose log.\n" + " -h, --help Show this help text.\n" + ); +} + + +/* + * The returned buffer has an extra 0 appended to it for easier parsing... + */ +file_data_t read_file(char *name) +{ + file_data_t fd = { }; + FILE *f; + unsigned u; + char *s; + + if(!name) return fd; + + if(strcmp(name, "-")) { + f = fopen(name, "r"); + } + else { + f = stdin; + } + + if(!f) { + for(u = 0; u < sizeof opt.lib_path / sizeof *opt.lib_path; u++) { + if(opt.lib_path[u]) { + asprintf(&s, "%s/%s", opt.lib_path[u], name); + f = fopen(s, "r"); + if(f) { + fd.name = s; + break; + } + else { + free(s); + } + } + } + } + else { + fd.name = strdup(name); + } + + if(!f) { perror(name); return fd; } + + if(fseek(f, 0, SEEK_END)) { + perror(name); + exit(30); + } + + fd.size = fd.real_size = (unsigned) ftell(f); + + if(fseek(f, 0, SEEK_SET)) { + perror(name); + exit(30); + } + + fd.ptr = fd.data = calloc(1, fd.size + 1); + if(!fd.data) { + fprintf(stderr, "malloc failed\n"); + exit(30); + } + + if(fread(fd.data, 1, fd.size, f) != fd.size) { + perror(name); + exit(30); + } + + fclose(f); + + return fd; +} + + +int write_data(char *name) +{ + FILE *f; + file_data_t fd = {}; + + f = strcmp(name, "-") ? fopen(name, "w") : stdout; + + if(!f) { + perror(name); + return 1; + } + + add_data(&fd, pscode.data, pscode.size); + + if(fwrite(fd.data, fd.size, 1, f) != 1) { + perror(name); + return 1; + } + + fclose(f); + + return 0; +} + + +void encode_number(unsigned char *enc, uint64_t val, unsigned len) +{ + while(len--) { + *enc++ = val; + val >>= 8; + } +} + + +uint64_t decode_number(unsigned char *data, unsigned len) +{ + uint64_t val = 0; + + data += len; + + while(len--) { + val <<= 8; + val += *--data; + } + + return val; +} + + +void add_data(file_data_t *d, void *buffer, unsigned size) +{ + ssize_t ofs = 0; + + if(!size || !d || !buffer) return; + + if(d->ptr && d->data) ofs = d->ptr - d->data; + + if(d->size + size > d->real_size) { + d->real_size = d->size + size + 0x1000; + d->data = realloc(d->data, d->real_size); + if(!d->data) d->real_size = 0; + } + + if(d->size + size <= d->real_size) { + memcpy(d->data + d->size, buffer, size); + d->size += size; + } + else { + fprintf(stderr, "Oops, out of memory? Aborted.\n"); + exit(10); + } + + if(d->ptr && d->data) d->ptr = d->data + ofs; +} + + +code_t *new_code() +{ + if(code_size >= code_max_size) { + code_max_size += 10; + code = realloc(code, code_max_size * sizeof * code); + memset(code + code_size, 0, (code_max_size - code_size) * sizeof * code); + } + + return code + code_size++; +} + + + +dict_t *new_dict() +{ + if(dict_size >= dict_max_size) { + dict_max_size += 10; + dict = realloc(dict, dict_max_size * sizeof *dict); + memset(dict + dict_size, 0, (dict_max_size - dict_size) * sizeof *dict); + } + + return dict + dict_size++; +} + + +uint32_t read_uint32_le(file_data_t *fd, unsigned ofs) +{ + uint32_t word = 0; + unsigned u; + for (u = 0; u < 4; u++) { + word += (unsigned) fd->data[ofs + u] << (u * 8); + } + return word; +} + + +int show_info(char *name) +{ + file_data_t fd; + int err = 1; + + fd = read_file(name); + + err = decompile(fd.data, fd.size); + if(!err) { + log_code(stdout, 0); + } + + return err; +} + + +/* + * Convert hex number of excatly len bytes. + */ +int get_hex(char *s, unsigned len, unsigned *val) +{ + unsigned u; + char s2[len + 1]; + + if(!s || !len) return 0; + strncpy(s2, s, len); + s2[len] = 0; + + u = strtoul(s2, &s, 16); + if(!*s) { + if(val) *val = u; + return 1; + } + + return 0; +} + + +char *utf8_encode(unsigned uc) +{ + static char buf[7]; + char *s = buf; + + uc &= 0x7fffffff; + + if(uc < 0x80) { // 7 bits + *s++ = uc; + } + else { + if(uc < (1 << 11)) { // 11 (5 + 6) bits + *s++ = 0xc0 + (uc >> 6); + goto utf8_encode_2; + } + else if(uc < (1 << 16)) { // 16 (4 + 6 + 6) bits + *s++ = 0xe0 + (uc >> 12); + goto utf8_encode_3; + } + else if(uc < (1 << 21)) { // 21 (3 + 6 + 6 + 6) bits + *s++ = 0xf0 + (uc >> 18); + goto utf8_encode_4; + } + else if(uc < (1 << 26)) { // 26 (2 + 6 + 6 + 6 + 6) bits + *s++ = 0xf8 + (uc >> 24); + goto utf8_encode_5; + } + else { // 31 (1 + 6 + 6 + 6 + 6 + 6) bits + *s++ = 0xfc + (uc >> 30); + } + + *s++ = 0x80 + ((uc >> 24) & ((1 << 6) - 1)); + + utf8_encode_5: + *s++ = 0x80 + ((uc >> 18) & ((1 << 6) - 1)); + + utf8_encode_4: + *s++ = 0x80 + ((uc >> 12) & ((1 << 6) - 1)); + + utf8_encode_3: + *s++ = 0x80 + ((uc >> 6) & ((1 << 6) - 1)); + + utf8_encode_2: + *s++ = 0x80 + (uc & ((1 << 6) - 1)); + } + + *s = 0; + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decode utf8 sequence. +// +// a) if s points to a valid utf8 sequence: +// - returns unicode char (a non-negative number) +// - s is updated to point past utf8 char +// +// b) if s does not point to a valid utf8 sequence +// - returns negated first byte +// - s is incremented by 1 +// +int utf8_decode(char **s) +{ + unsigned char *p; + int c; + unsigned u, l; + + if(!s || !*s) return 0; + + p = (uint8_t *) *s; + + u = *p++; + + if(u >= 0x80) { + if(u < 0xc0 || u >= 0xfe) { + *s = (char *) p; + return -(int) u; + } + l = 1; + if(u < 0xe0) { + c = u & 0x1f; + } + else if(u < 0xf0) { + c = u & 0x0f; + l = 2; + } + else if(u < 0xf8) { + c = u & 0x07; + l = 3; + } + else if(u < 0xfc) { + c = u & 0x03; + l = 4; + } + else if(u < 0xfe) { + c = u & 0x01; + l = 5; + } + while(l--) { + u = *p++; + if(u < 0x80 || u >= 0xc0) { + u = (uint8_t) **s; + (*s)++; + return -(int) u; + } + c = (c << 6) + (int) (u & 0x3f); + } + } + else { + c = (int) u; + } + + *s = (char *) p; + + return c; +} + + +char *utf8_quote(unsigned uc) +{ + static char buf[16]; + + if(uc == '\t') { + strcpy(buf, "\\t"); + } + else if(uc == '\n') { + strcpy(buf, "\\n"); + } + else if(uc == '\\') { + strcpy(buf, "\\\\"); + } + else if(uc == '\'') { + strcpy(buf, "\\'"); + } + else if(uc < ' ' || uc == 0x7f) { + sprintf(buf, "\\x%02x", uc); + } + else if(uc >= ' ' && uc < 0x7f) { + buf[0] = uc; + buf[1] = 0; + } + else if(uc < 0xffff) { + sprintf(buf, "\\u%04x", uc); + } + else { + sprintf(buf, "\\U%08x", uc); + } + + return buf; +} + + +char *next_word(char **ptr, int *len) +{ + char *s, *start, *utf8; + int is_str, is_comment; + static char word[0x1000]; + unsigned u, n = 0; + char qc = 0; + + s = *ptr; + + *word = 0; + + if(len) *len = (int) n; + + while(*s && isspace(*s)) if(*s++ == '\n') line++; + + if(!*s) { + *ptr = s; + return word; + } + + start = s; + + qc = *start; + is_str = qc == '"' || qc == '\'' ? 1 : 0; + is_comment = qc == COMMENT_CHAR ? 1 : 0; + + if(is_comment) { + while(*s && *s != '\n') s++; + } + else if(is_str) { + *word = *s++; + for(n = 1; n < sizeof word - 1; n++) { + if(!*s) break; + if(*s == qc) { s++; break; } + if(*s == '\\') { + s++; + switch(*s) { + case 0: + word[n++] = '\\'; + break; + + case 'n': + word[n] = '\n'; + break; + + case 't': + word[n] = '\t'; + break; + + case '0': + if( + s[0] >= '0' && s[0] <= '7' && + s[1] >= '0' && s[1] <= '7' && + s[2] >= '0' && s[2] <= '7' + ) { + word[n] = ((s[0] - '0') << 6) + ((s[1] - '0') << 3) + (s[2] - '0'); + s += 2; + } + else { + word[n] = *s; + } + break; + + case 'x': + if(get_hex(s + 1, 2, &u)) { + s += 2; + word[n] = u; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + case 'u': + if(get_hex(s + 1, 4, &u)) { + s += 4; + utf8 = utf8_encode(u); + while(*utf8) word[n++] = *utf8++; + n--; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + case 'U': + if(get_hex(s + 1, 8, &u)) { + s += 8; + utf8 = utf8_encode(u); + while(*utf8) word[n++] = *utf8++; + n--; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + default: + word[n] = *s; + } + s++; + } + else { + word[n] = *s++; + } + } + word[n] = 0; + } + else { + while(*s && !isspace(*s)) s++; + } + + if(!is_str) { + n = (unsigned) (s - start); + if(n >= sizeof word) n = sizeof word - 1; + strncpy(word, start, n); + word[n] = 0; + } + + *ptr = s; + + if(len) *len = (int) n; + + return word; +} + + +void parse_comment(char *comment, file_data_t *incl) +{ + char t[5][100]; + int n; + + n = sscanf(comment, " %99s %99s %99s %99s %99s", t[0], t[1], t[2], t[3], t[4]); + + if(!n) return; + + if(n == 2 && !strcmp(t[0], "include")) { + *incl = read_file(t[1]); + if(!incl->data) exit(18); + add_data(incl, "", 1); + if(opt.verbose) fprintf(stderr, "including \"%s\"\n", incl->name); + return; + } +} + + +int find_in_dict(char *name) +{ + unsigned u; + + for(u = 0; u < dict_size; u++) { + if(dict[u].name && !strcmp(name, dict[u].name)) return (int) u; + } + + return -1; +} + + +unsigned usize(uint64_t val) +{ + unsigned len = 0; + + while(val) { + val >>= 8; + len++; + } + + return len; +} + + +unsigned isize(int64_t val) +{ + unsigned len = 1; + + if(val == 0) return 0; + + while((val >> 7) && (val >> 7) != -1L) { + val >>= 8; + len++; + }; + + return len; +} + + +int translate(int pass) +{ + int is_signed; + code_t *c; + unsigned u, ofs = 0, len, lenx; + int changed = 0; + + if(pass == 0) { + changed = 1; + for(u = 0; u < code_size; u++) { + c = code + u; + + c->ofs = ofs; + + is_signed = 0; + switch(c->type) { + case t_skip: + c->size = 0; + break; + + case t_int: + is_signed = 1; + + case t_nil: + case t_bool: + case t_prim: + case t_comment: + case t_string: + case t_word: + case t_ref: + case t_get: + case t_set: + if(c->value.p) { + if(!TYPE_EXPECTS_DATA(c->type)) { + fprintf(stderr, "Internal oops %d: type %d needs memory range\n", __LINE__, c->type); + exit(9); + } + lenx = c->value.p_len; + if(lenx < 12) { + c->size = lenx + 1; + c->enc = malloc(c->size); + memcpy(c->enc + 1, c->value.p, lenx); + c->enc[0] = c->type + (lenx << 4); + } + else { + // len is at least 1 since lenx is != 0 + len = usize(lenx); + if(len > 4) { + fprintf(stderr, "Internal oops %d: type %d memory range is too large\n", __LINE__, c->type); + exit(11); + } + c->size = lenx + len + 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len + 11) << 4); + encode_number(c->enc + 1, lenx, len); + memcpy(c->enc + 1 + len, c->value.p, lenx); + } + } + else { + if(TYPE_EXPECTS_DATA(c->type)) { + fprintf(stderr, "Internal oops %d: type %d misses memory range\n", __LINE__, c->type); + exit(10); + } + len = is_signed ? isize((int64_t) c->value.u) : usize(c->value.u); + if(c->value.u < 8) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + (c->value.u << 4); + } + else { + // len is at least 1 since c->value.u is != 0 + c->size = len + 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len - 1 + 8) << 4); + encode_number(c->enc + 1, c->value.u, len); + } + } + break; + + case t_code: + c->size = 2; + // dummy value + // really encoded in else branch below during later passes (pass != 0) + break; + + default: + fprintf(stderr, "Internal oops %d: type %d not allowed\n", __LINE__, c->type); + exit(8); + } + + ofs += c->size; + } + } + else { + for(u = 0; u < code_size; u++) { + c = code + u; + + if(c->ofs != ofs) changed = 1; + c->ofs = ofs; + + if(c->xref_to) { + unsigned dist = c->ofs - code[c->xref_to].ofs; + unsigned xlen = usize(dist); + if(dist < 8) { + if(1 < c->size || c->type == t_xref) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = t_xref + (dist << 4); + c->type = t_xref; + } + } + else { + if(xlen + 1 < c->size || c->type == t_xref) { + c->enc[0] = t_xref + ((xlen - 1 + 8) << 4); + encode_number(c->enc + 1, dist, xlen); + c->size = xlen + 1; + c->type = t_xref; + } + } + } + + if(c->type == t_code) { + lenx = c->value.u; + // we want to encode the length of the code blob, starting *after* + // the current instruction + if(lenx >= code_size || u >= code_size - 1 || code[lenx].ofs < c[1].ofs) { + fprintf(stderr, "Internal error %d\n", __LINE__); + exit(11); + } + lenx = code[lenx].ofs - c[1].ofs; + if(lenx < 12) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + (lenx << 4); + } + else { + len = usize(lenx); + if(c->size != len + 1) changed = 1; + c->size = len + 1; + if(c->enc) free(c->enc); + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len + 11) << 4); + encode_number(c->enc + 1, lenx, len); + } + } + + ofs += c->size; + } + } + + return changed; +} + + +int parse_config(char *name, char *log_file) +{ + char *word; + file_data_t cfg[MAX_INCLUDE]; + file_data_t incl; + int i, j; + unsigned u, word_len; + dict_t *d; + code_t *c, *c1; + char *s; + FILE *lf = NULL; + int incl_level = 0; + + cfg[incl_level] = read_file(name); + add_data(&cfg[incl_level], "", 1); + + if(!cfg[incl_level].ptr) { + fprintf(stderr, "error: no source file\n"); + + return 1; + } + + if(log_file && *log_file) { + if(!strcmp(log_file, "-")) { + lf = fdopen(dup(fileno(stdout)), "a"); + } + else { + lf = fopen(log_file, "w"); + } + } + + // setup initial vocabulary + for(u = 0; u < prim_words; u++) { + d = new_dict(); + d->type = t_prim; + d->value.u = u; + d->name = (char *) prim_names[u]; + } + + c = new_code(); + c->type = t_comment; + c->value.p_len = 7; + c->value.p = calloc(1, 7); + encode_number(c->value.p, GFXBOOT_MAGIC, 7); + c->name = strdup("# gfxboot magic"); + + while(*cfg[incl_level].ptr || incl_level) { + if(!*cfg[incl_level].ptr) { + incl_level--; + line = cfg[incl_level].line; + } + word = next_word((char **) &cfg[incl_level].ptr, &word_len); // unsigned char ** + if(!word || !word_len) continue; + + if(word[0] == COMMENT_CHAR) { + if(word[1] == COMMENT_CHAR) { + incl.ptr = NULL; + parse_comment(word + 2, &incl); + if(incl.ptr) { + if(incl_level == MAX_INCLUDE - 1) { + fprintf(stderr, "error: include level exceeded\n"); + return 1; + } + else { + cfg[incl_level].line = line; + cfg[++incl_level] = incl; + line = 1; + } + } + } + continue; + } + + if(opt.verbose >= 2) printf(">%s< [%d] (line %d)\n", word, word_len, line); + + c = new_code(); + c->line = line; + c->incl_level = incl_level; + + if(*word == '"') { + c->type = t_string; + c->value.p = calloc(1, word_len); + c->value.p = memcpy(c->value.p, word + 1, word_len - 1); + c->value.p_len = word_len - 1; + } + else if(*word == '\'') { + char *s = word + 1; + int uc = utf8_decode(&s); + if(uc >= 0 && !*s) { + c->type = t_int; + c->value.u = (unsigned) uc; + asprintf(&c->name, "'%s'", utf8_quote((unsigned) uc)); + } + else { + fprintf(stderr, "syntax error: invalid char constant in line %d\n", line); + return 1; + } + } + else if(*word == '/') { + c->name = strdup(word + 1); + + c->type = t_ref; + + if((i = find_in_dict(word + 1)) == -1) { + d = new_dict(); + d->type = t_nil; + d->value.u = 1; // mark as defined + d->value.p = strdup(word + 1); + d->value.p_len = strlen(word + 1); + d->name = strdup(word + 1); + c->value.u = dict_size - 1; + } + else { + if(dict[i].type == t_nil && !dict[i].value.u) { + dict[i].value.u = 1; // mark as defined + } + c->value.u = (unsigned) i; + } + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(*word == '.') { + c->name = strdup(word + 1); + c->type = t_get; + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(*word == '=') { + c->name = strdup(word + 1); + c->type = t_set; + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(!strcmp(word, prim_names[prim_idx_code_start])) { + c->type = t_code; + c->name = strdup(word); + } + else if(!strcmp(word, prim_names[prim_idx_code_end])) { + c->type = t_prim; + c->value.u = prim_idx_code_end; + c->name = strdup(word); + for(c1 = c; c1 >= code; c1--) { + if(c1->type == t_code && !c1->value.u) { + // point _after_ "}" + c1->value.u = (unsigned) (c - code) + 1; + break; + } + } + if(c1 < code) { + fprintf(stderr, "syntax error: no matching \"{\" for \"}\" in line %d\n", line); + return 1; + } + } + else { + c->name = strdup(word); + + i = find_in_dict(word); + + if(i == -1) { + uint64_t val = strtoull(word, &s, 0); + if(*s) { + if(!strcmp(s, "nil")) { + c->type = t_nil; + c->value.u = 0; + } + else if(!strcmp(s, "true")) { + c->type = t_bool; + c->value.u = 1; + } + else if(!strcmp(s, "false")) { + c->type = t_bool; + c->value.u = 0; + } + else { + d = new_dict(); + d->type = t_nil; + d->name = strdup(word); + c->type = t_word; + c->value.u = dict_size - 1; + c->value.p = strdup(word); + c->value.p_len = strlen(word); + } + } + else { + c->type = t_int; + c->value.u = val; + } + } + else { + c->type = t_word; + c->value.u = (unsigned) i; + c->value.p = strdup(word); + c->value.p_len = strlen(word); + } + } + } + + // check vocabulary + if(opt.verbose >= 2) { + for(i = j = 0; i < (int) dict_size; i++) { + if( + dict[i].type == t_nil && !dict[i].value.u + ) { + if(!j) fprintf(stderr, "Undefined words:"); + else fprintf(stderr, ","); + fprintf(stderr, " %s", dict[i].name); + j = 1; + } + } + if(j) { + fprintf(stderr, "\n"); + } + } + + if(opt.optimize) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# searching for unused code:\n"); + for(i = 0; i < 64; i++) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# pass %d\n", i + 1); + if(!optimize_code(lf)) break; + } + if(opt.verbose >= 2 && lf) fprintf(lf, "# %d optimization passes\n", i + 1); + if(i) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# searching for unused dictionary entries:\n"); + optimize_dict(lf); + } + } + + // translate to byte code + for(i = 0; i < 100; i++) { + if(!translate(i)) break; + } + if(opt.verbose >= 2 && lf) fprintf(lf, "# %d encoding passes\n", i + 1); + if(i == 100) { + fprintf(stderr, "error: code translation does not converge\n"); + return 1; + } + + // store it + for(i = 0; i < (int) code_size; i++) { + if((!code[i].enc || !code[i].size) && code[i].type != t_skip) { + fprintf(stderr, "error: internal oops %d\n", __LINE__); + return 1; + } + add_data(&pscode, code[i].enc, code[i].size); + } + + if(lf) fputc('\n', lf); + log_code(lf, 1); + + if(lf) fclose(lf); + + return 0; +} + + +/* + * Remove deleted dictionary entries. + */ +void optimize_dict(FILE *lf) +{ + unsigned u, old_ofs, new_ofs; + + for(old_ofs = new_ofs = 0; old_ofs < dict_size; old_ofs++) { + if(dict[old_ofs].del) continue; + if(old_ofs != new_ofs) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# rename %d -> %d\n", old_ofs, new_ofs); + dict[new_ofs] = dict[old_ofs]; + for(u = 0; u < code_size; u++) { + if( + ( + code[u].type == t_word || + code[u].type == t_ref + ) && + code[u].value.u == old_ofs + ) { + code[u].value.u = new_ofs; + } + } + } + new_ofs++; + } + if(opt.verbose >= 2 && lf && new_ofs != old_ofs) { + fprintf(lf, "# new dictionary size %d (%d - %d)\n", new_ofs, old_ofs, old_ofs - new_ofs); + } + + dict_size = new_ofs; +} + + +/* + * Skip deleted code. + */ +unsigned skip_code(unsigned pos) +{ + while(pos < code_size && code[pos].type == t_skip) pos++; + + return pos; +} + + +/* + * Return next instruction. + */ +unsigned next_code(unsigned pos) +{ + if((pos + 1) >= code_size) return pos; + + return skip_code(++pos); +} + + +int optimize_code(FILE *lf) +{ + unsigned u; + int changed = 0, ind = 0; + code_t *c; + + for(u = 0; u < dict_size; u++) { + dict[u].def = dict[u].def_idx = + dict[u].ref = dict[u].ref_idx = + dict[u].ref0 = dict[u].ref0_idx = 0; + } + + for(u = 0; u < code_size; u++) { + c = code + u; + + switch(c->type) { + case t_code: + ind++; + break; + + case t_prim: + if(c->value.u == prim_idx_code_end) { + if(!ind) { + fprintf(stderr, "Warning: nesting error at line %d\n", c->line); + } + ind--; + } + break; + + case t_word: + if(c->value.u < dict_size) { + dict[c->value.u].ref++; + dict[c->value.u].ref_idx = (int) u; + dict[c->value.u].ref_ind = ind; + if(ind == 0 && !dict[c->value.u].ref0) { + dict[c->value.u].ref0 = 1; + dict[c->value.u].ref0_idx = (int) u; + } + } + break; + + case t_ref: + if(c->value.u < dict_size) { + dict[c->value.u].def++; + dict[c->value.u].def_idx = (int) u; + dict[c->value.u].def_ind = ind; + } + break; + + default: + break; + } + } + + if(opt.optimize >= 2) changed |= optimize_code1(lf); + if(opt.optimize >= 3) changed |= optimize_code2(lf); + if(opt.optimize >= 3) changed |= optimize_code3(lf); + if(opt.optimize >= 3) changed |= optimize_code5(lf); + if(opt.optimize >= 2) changed |= optimize_code4(lf); + // must always be the last step + if(opt.optimize >= 1) changed |= optimize_code6(lf); + + return changed; +} + + +/* + * Find references to primitive words. + */ +int optimize_code1(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c; + + for(i = 0; i < dict_size; i++) { + if( + i < prim_words && + !dict[i].del && + dict[i].def == 0 && + dict[i].ref && + dict[i].type == t_prim + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# replacing %s\n", dict[i].name); + for(j = 0; j < code_size; j++) { + c = code + j; + if(c->type == t_word && c->value.u == i) { + c->type = dict[i].type; + c->value.u = dict[i].value.u; + c->value.p = NULL; + c->value.p_len = 0; + } + } + + changed = 1; + } + } + + return changed; +} + + +/* + * Remove things like + * + * /foo 123 def + * /foo "abc" def + * /foo /bar def + * + * if foo is unused. + */ +int optimize_code2(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c0, *c1, *c2; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + dict[i].def == 1 && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + (j = next_code(j)); + c2 = code + (j = next_code(j)); + + if( + c0->type == t_ref && + c0->value.u == i && + ( + c1->type == t_nil || + c1->type == t_int || + c1->type == t_bool || + c1->type == t_string || + c1->type == t_ref + ) && + c2->type == t_prim && + !strcmp(dict[c2->value.u].name, "def") + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# defined but unused: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + c0->type = c1->type = c2->type = t_skip; + dict[i].del = 1; + + changed = 1; + } + } + } + + return changed; +} + + +/* + * Remove things like + * + * /foo { ... } def + * + * if foo is unused. + */ +int optimize_code3(FILE *lf) +{ + unsigned i, j, k; + int changed = 0; + code_t *c0, *c1; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + dict[i].def == 1 && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + next_code(j); + + if(c1 == c0) continue; + + if( + c0->type == t_ref && + c0->value.u == i && + c1->type == t_code && + code[j = skip_code(c1->value.u)].type == t_prim && + !strcmp(dict[code[j].value.u].name, "def") && + j > (unsigned) dict[i].def_idx + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# defined but unused: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + for(k = (unsigned) dict[i].def_idx; k <= j; k++) code[k].type = t_skip; + dict[i].del = 1; + + changed = 1; + } + } + } + + return changed; +} + + + +/* + * Find unused dictionary entries. + */ +int optimize_code4(FILE *lf) +{ + unsigned i; + int changed = 0; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + !dict[i].def + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# unused: %s (index %d)\n", dict[i].name, i); + + dict[i].del = 1; + + changed = 1; + } + } + + return changed; +} + + +/* + * Replace references to constant global vars. + */ +int optimize_code5(FILE *lf) +{ + unsigned i, j, k; + int changed = 0; + code_t *c, *c0, *c1, *c2; + char *s; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + dict[i].def == 1 && + dict[i].def_ind == 0 && + ( + !dict[i].ref0 || + dict[i].ref0_idx > dict[i].def_idx + ) && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + (j = next_code(j)); + c2 = code + (j = next_code(j)); + + if( + c0->type == t_ref && + c0->value.u == i && + ( + c1->type == t_nil || + c1->type == t_int || + c1->type == t_bool + ) && + c2->type == t_prim && + !strcmp(dict[c2->value.u].name, "def") + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# global constant: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# replacing %s with %s\n", dict[i].name, c1->name); + for(k = 0; k < code_size; k++) { + c = code + k; + if(c->type == t_word && c->value.u == i) { + c->type = c1->type; + c->value = c1->value; + if(c->type == t_int) { + asprintf(&s, "%s # %s", c1->name, c->name); + free(c->name); + c->name = s; + } + else if(c->type == t_bool) { + asprintf(&s, "%s # %s", c->value.u ? "true" : "false", c->name); + free(c->name); + c->name = s; + } + else if(c->type == t_nil) { + asprintf(&s, "nil # %s", c->name); + free(c->name); + c->name = s; + } + } + } + + dict[i].del = 1; + + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + c0->type = c1->type = c2->type = t_skip; + + changed = 1; + } + } + } + + return changed; +} + + +/* + */ +int optimize_code6(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c, *c_ref; + + if(opt.verbose >= 2 && lf) fprintf(lf, "# looking for cross references\n"); + + for(i = 0; i < code_size; i++) { + c_ref = code + i; + if(c_ref->xref_to) continue; + if( + c_ref->type == t_string || + c_ref->type == t_word || + c_ref->type == t_ref || + c_ref->type == t_get || + c_ref->type == t_set + ) { + for(j = i + 1; j < code_size; j++) { + c = code + j; + if( + c->type == c_ref->type && + c_ref->value.p && c->value.p && + c_ref->value.p_len == c->value.p_len && + !memcmp(c->value.p, c_ref->value.p, c->value.p_len) + ) { + c->xref_to = i; + if(opt.verbose >= 2 && lf) fprintf(lf, "xref: %d = %d name = >%s<\n", j, i, c->name); + changed = 1; + } + } + } + } + + return changed; +} + + +void log_code(FILE *lf, int style) +{ + int i, j, l, line = 0, incl_level = 0; + int ind = 0, diff = 0; + char *s; + + if(!lf) return; + + for(i = j = 0; i < (int) code_size; i++) { + if(code[i].type == t_skip) j++; + } + + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + fprintf(lf, "# code: %d entries (%d - %d)\n", (int) code_size - j, code_size, j); + if(style || opt.verbose) { + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + fprintf(lf, "# line i %soffset type hex word\n", opt.verbose ? "index " : ""); + } + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + for(i = 0; i < (int) code_size; i++) { + if(code[i].duplicate) { + diff++; + } + if(code[i].type == t_skip && !opt.verbose) continue; + if(style || opt.verbose) { + if((line != code[i].line || incl_level != code[i].incl_level) && code[i].line) { + line = code[i].line; + incl_level = code[i].incl_level; + fprintf(lf, "%6d", line); + if(incl_level) { + fprintf(lf, " %d ", incl_level); + } + else { + fprintf(lf, " "); + } + } + else { + fprintf(lf, "%9s", ""); + } + if(opt.verbose) { + if(code[i].duplicate) { + fprintf(lf, "%5s ", ""); + } + else { + fprintf(lf, "%5d ", i - diff); + } + } + if(code[i].size && !code[i].duplicate) { + fprintf(lf, "0x%05x ", code[i].ofs); + } + else { + fprintf(lf, "%*s", 9, ""); + } + if(code[i].type < sizeof type_name / sizeof *type_name) { + fprintf(lf, "%-6s", type_name[code[i].type]); + } + else { + fprintf(lf, "<%4u>", code[i].type); + } + l = code[i].enc ? (int) code[i].size : 0; + if(l > 8) l = 8; + for(j = 0; j < l; j++) { + fprintf(lf, " %02x", code[i].enc[j]); + } + } + else { + l = 8; + } + + type_t type = code[i].type; + if(code[i].xref_to) type = code[code[i].xref_to].type; + + if( + ( + (type == t_word || type == t_prim) && + ( + !strcmp(code[i].name, prim_names[prim_idx_array_end]) || + !strcmp(code[i].name, prim_names[prim_idx_hash_end]) || + !strcmp(code[i].name, prim_names[prim_idx_code_end]) + ) + ) && + ind > 0 + ) ind -= 2; + fprintf(lf, "%*s", 3 * (8 - l) + ind + (style || opt.verbose ? 2 : 0), ""); + + if(type == t_skip) fprintf(lf, "# "); + + if( + type == t_code || + ( + (type == t_word || type == t_prim) && + ( + !strcmp(code[i].name, prim_names[prim_idx_array_start]) || + !strcmp(code[i].name, prim_names[prim_idx_hash_start]) || + !strcmp(code[i].name, prim_names[prim_idx_code_start]) + ) + ) + ) ind += 2; + + if( + type == t_string || + type == t_word || + type == t_ref || + type == t_get || + type == t_set + ) { + if(type == t_string) fprintf(lf, "\""); + if(type == t_ref) fprintf(lf, "/"); + if(type == t_get) fprintf(lf, "."); + if(type == t_set) fprintf(lf, "="); + s = code[i].value.p; + unsigned p_len = code[i].value.p_len; + while(p_len--) { + if(*s >= 0 && *s < 0x20) { + if(*s == '\n') { + fprintf(lf, "\\n"); + } + else if(*s == '\t') { + fprintf(lf, "\\t"); + } + else { + fprintf(lf, "\\x%02x", (unsigned char) *s); + } + } + else { + fprintf(lf, "%c", *s); + } + s++; + } + if(type == t_string) fprintf(lf, "\""); + } + else { + fprintf(lf, "%s", code[i].name ?: ""); + } + + if((style || opt.verbose) && code[i].enc && code[i].size > 8) { + for(j = 8; j < (int) code[i].size; j++) { + if(j & 7) { + fprintf(lf, " "); + } + else { + fprintf(lf, "\n%*s", 25 + (opt.verbose ? 7 : 0), ""); + } + fprintf(lf, "%02x", code[i].enc[j]); + } + } + fprintf(lf, "\n"); + } +} + + +unsigned decode_instr(unsigned char *data, type_t *type, int64_t *arg1, unsigned char **arg2) +{ + unsigned u, len; + type_t t; + unsigned inst_size = 1; + int64_t val; + + u = data[0] >> 4; + *type = t = data[0] & 0xf; + *arg2 = 0; + + if(TYPE_EXPECTS_DATA(t)) { + if(u >= 12) { + u -= 11; + len = decode_number(data + 1, u); + inst_size += u; + } + else { + len = u; + } + *arg1 = len; + // we want to decode the code blobs + if(t != t_code) { + *arg2 = data + inst_size; + inst_size += len; + } + } + else { + if(u >= 8) { + u -= 7; + val = (int64_t) decode_number(data + 1, u); + inst_size += u; + if(t == t_int) { + // expand sign bit + val <<= 8 * (8 - u); + val >>= 8 * (8 - u); + } + } + else { + val = u; + } + *arg1 = val; + } + + return inst_size; +} + + +int decompile(unsigned char *data, unsigned size) +{ + unsigned i, j, inst_size; + dict_t *d; + code_t *c; + type_t type; + int64_t arg1; + unsigned char *arg2; + + // setup initial vocabulary + for(i = 0; i < prim_words; i++) { + d = new_dict(); + d->type = t_prim; + d->value.u = i; + d->name = (char *) prim_names[i]; + } + + for(i = 0; i < size; i += inst_size) { + inst_size = decode_instr(data + i, &type, &arg1, &arg2); + + if(i + inst_size > size) { + if(i) { + fprintf(stderr, "error: instruction size bounds exceeded: %u > %u\n", i + inst_size, size); + } + else { + fprintf(stderr, "error: invalid file format\n"); + } + + return 1; + } + + c = new_code(); + c->type = type; + + if( + i == 0 && + !( + c->type == t_comment && + inst_size == 8 + ) + ) { + fprintf(stderr, "error: invalid file format\n"); + + return 1; + } + + c->ofs = i; + c->size = inst_size; + c->enc = malloc(inst_size); + memcpy(c->enc, data + i, inst_size); + + c->value.u = (uint64_t) arg1; + + if(arg2) { + c->value.p = arg2; + c->value.p_len = arg1; + } + + if(i == 0 && decode_number(c->value.p, c->value.p_len) != GFXBOOT_MAGIC) { + fprintf(stderr, "error: gfxboot magic not matching\n"); + + return 1; + } + + if(c->type == t_xref) { + c->value.u = (uint64_t) arg1; + for(j = 0; j < code_size - 1; j++) { + if(code[j].ofs == c->ofs - arg1) { + c->xref_to = j; + } + } + if(!c->xref_to) { + fprintf(stderr, "error: invalid cross reference: ofs 0x%x, %d\n", c->ofs, (unsigned) arg1); + return 2; + } + code_t *c_ref = code + c->xref_to; + unsigned old_ofs = c->ofs; + c->xref_to = 0; + asprintf(&c->name, "# -> offset 0x%05x", c_ref->ofs); + if(opt.verbose >= 2) { + c = new_code(); + *c = *c_ref; + c->duplicate = 1; + } + else { + *c = *c_ref; + } + c->ofs = old_ofs; + } + + switch(c->type) { + case t_code: + c->name = (char *) prim_names[prim_idx_code_start]; + break; + + case t_int: + asprintf(&c->name, "%lld", (long long) arg1); + break; + + case t_string: + case t_word: + case t_ref: + case t_get: + case t_set: + c->name = calloc(1, c->value.p_len + 1); + memcpy(c->name, c->value.p, c->value.p_len); + break; + + case t_prim: + if(arg1 < dict_size) { + c->name = dict[arg1].name; + } + else { + fprintf(stderr, "error: word %u not in dictionary\n", (unsigned) arg1); + return 1; + } + break; + + case t_bool: + asprintf(&c->name, "%s", arg1 ? "true" : "false"); + break; + + case t_nil: + c->name = strdup("nil"); + break; + + case t_comment: + if( + c->value.p && + c->value.p_len == 7 && + decode_number(c->value.p, 7) == GFXBOOT_MAGIC + ) { + if(!c->name) c->name = "# gfxboot magic"; + } + break; + + case t_xref: + break; + + default: + fprintf(stderr, "error: type %d not recognized\n", c->type); + return 2; + } + } + + return 0; +} diff --git a/gfxboot-font.c b/gfxboot-font.c new file mode 100644 index 0000000..159f062 --- /dev/null +++ b/gfxboot-font.c @@ -0,0 +1,1544 @@ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wsign-compare" + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include FT_FREETYPE_H +#include FT_SYNTHESIS_H + + +#define MAGIC 0xa42a9123 + +// 4 bits seem to be enough +#define GRAY_BITS 4 +// 3 gave smallest file for about 16x16 pixel fonts, but it doesn't really matter much +#define GRAY_BIT_COUNT 3 +// maximal gray value (min is 0) +#define MAX_GRAY ((1 << GRAY_BITS) - 3) +// repeat background color (font pixel unset) +#define REP_BG (MAX_GRAY + 1) +// repeat foreground color (font pixel set) +#define REP_FG (MAX_GRAY + 2) +// color quantization method: choose 1 or 2 +#define COLOR_QUANT 1 + +struct option options[] = { + { "add", 1, NULL, 'a' }, + { "add-charset", 1, NULL, 'c' }, + { "font", 1, NULL, 'f' }, + { "line-height", 1, NULL, 'l' }, + { "font-height", 1, NULL, 'H' }, + { "font-path", 1, NULL, 'p' }, + { "show", 0, NULL, 's' }, + { "add-text", 1, NULL, 't' }, + { "verbose", 0, NULL, 'v' }, + { "test", 0, NULL, 999 }, + { } +}; + + +typedef struct list_any_s { + struct list_any_s *next; +} list_any_t; + +typedef struct { + void *start; + void *end; +} list_t; + +typedef struct n_set_s { + struct n_set_s *next; + int first, last; +} n_set_t; + +typedef struct { + unsigned size; + unsigned char *data; + unsigned real_size; +} file_data_t; + +typedef struct __attribute ((packed)) { + uint32_t magic; + uint8_t res1, res2, res3; + uint8_t max_bitmap_width; + uint8_t max_bitmap_height; + uint8_t height; + uint8_t line_height; + int8_t baseline; + uint32_t entries; +} font_header_t; + +typedef struct font_s { + struct font_s *next; + char *name; + char *file_name; + FT_Face face; + int size; + int prop; + int space_width; + int dy; + unsigned index; + int height; + int baseline; + list_t chars; /* n_set_t */ + unsigned used:1; /* font is actually used */ + unsigned ok:1; + unsigned bold:1; + unsigned nobitmap:1; + unsigned autohint:2; /* 0: auto, 1: off, 2: on */ + unsigned autosize:1; + unsigned autoshift:1; +} font_t; + +typedef struct char_data_s { + struct char_data_s* next; + unsigned ok:1; /* char exists */ + unsigned top:1; + unsigned bottom:1; + int c; /* char (utf32) */ + font_t *font; /* pointer to font */ + int x_advance; + int x_ofs; /* where to draw lower left bitmap corner */ + int y_ofs; + unsigned char *bitmap; /* char bitmap, width x height */ + int bitmap_width; + int bitmap_height; + unsigned char *data; + int data_len; +} char_data_t; + +list_t font_list; /* font_t */ +list_t char_list; /* char_data_t */ +list_t chars_missing; /* n_set_t */ +list_t chars_top; /* n_set_t */ +list_t chars_bottom; /* n_set_t */ + +int max_bitmap_width; +int max_bitmap_height; +int font_height; +int font_y_ofs; + +struct { + int verbose; + int test; + int line_height; + int max_font_height; + char *font_path; + list_t chars; /* n_set_t */ + char *file; + unsigned show:1; +} opt; + + +file_data_t *read_file(char *name); +void dump_char(char_data_t *cd); +void add_data(file_data_t *d, void *buffer, unsigned size); +void write_data(file_data_t *d, char *name); +int intersect(int first0, int last0, int first1, int last1); +void insert_int_list(list_t *list, int first, int last); +void *add_list(list_t *list, void *entry); +void *new_mem(size_t size); +char *new_str(char *str); +int parse_int_list(list_t *list, char *str); +char *search_font(char *font_path, char *name); +void render_char(char_data_t *cd); +int empty_row(char_data_t *cd, int row); +int empty_column(char_data_t *cd, int column); +void add_bbox(char_data_t *cd); +void make_prop(char_data_t *cd); +char *utf32_to_utf8(int u8); +void add_bits(unsigned char *buf, int *buf_ptr, int bits, unsigned data); +unsigned read_unsigned_bits(unsigned char *buf, int *buf_ptr, int bits); +int read_signed_bits(unsigned char *buf, int *buf_ptr, int bits); +int signed_bits(int num); +int unsigned_bits(unsigned num); +void encode_char(char_data_t *cd); +int show_font(char *name); +void get_font_height(font_t *font, int *height, int *y_ofs); + + +int main(int argc, char **argv) +{ + int i, j, k, err, ofs; + char *str, *str1, *t, *s, *s1, *font_spec; + iconv_t ic = (iconv_t) -1, ic2; + unsigned char obuf[4]; + char ibuf[6]; + char obuf2[4*0x100], ibuf2[0x100]; + char *obuf_ptr, *ibuf_ptr; + size_t obuf_left, ibuf_left; + FILE *f; + font_t *font; + n_set_t *n; + char_data_t *cd; + FT_Library ft_lib; + font_header_t fh; + file_data_t font_file = {}; + unsigned char char_ofs[5]; + + opt.font_path = "\ +/usr/share/fonts/truetype:\ +/usr/share/fonts/Type1:\ +/usr/share/fonts/misc:\ +/usr/X11R6/lib/X11/fonts/truetype:\ +/usr/X11R6/lib/X11/fonts/Type1:\ +/usr/X11R6/lib/X11/fonts/misc\ +"; + + opterr = 0; + + while((i = getopt_long(argc, argv, "Aa:c:f:H:l:p:st:v", options, NULL)) != -1) { + switch(i) { + case 'a': + err = parse_int_list(&opt.chars, optarg); + if(err) { + fprintf(stderr, "%s: invalid char range spec\n", optarg); + return 1; + } + break; + + case 'c': + ic2 = iconv_open("utf32le", optarg); + if(ic2 == (iconv_t) -1) { + fprintf(stderr, "don't know char set %s\ntry 'iconv --list'\n", optarg); + return 1; + } + ibuf_ptr = ibuf2; + ibuf_left = sizeof ibuf2; + obuf_ptr = obuf2; + obuf_left = sizeof obuf2; + for(j = 0; j < sizeof ibuf2; j++) ibuf2[j] = j; + iconv(ic2, &ibuf_ptr, &ibuf_left, &obuf_ptr, &obuf_left); + for(str = obuf2; str < obuf_ptr; str += 4) { + i = *(int *) str; + if(i >= 0x20 && (i < 0x7f || i > 0x9f)) insert_int_list(&opt.chars, i, i); + } + iconv_close(ic2); + break; + + case 'f': + font = add_list(&font_list, new_mem(sizeof *font)); + font_spec = new_str(optarg); + + if((s = strchr(font_spec, ':'))) { + font->name = new_mem(s - font_spec + 1); + memcpy(font->name, font_spec, s - font_spec); + t = s + 1; + err = 0; + while(!err && (str = strsep(&t, ":"))) { + if((s = strchr(str, '='))) { + *s++ = 0; + if(!strcmp(str, "size")) { + font->size = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "prop")) { + font->prop = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "space_width")) { + font->space_width = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "dy")) { + font->dy = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "bold")) { + font->bold = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "nobitmap")) { + font->nobitmap = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "autohint")) { + font->autohint = strtol(s, &s1, 0) + 1; + if(*s1) err = 1; + } + else if(!strcmp(str, "autosize")) { + font->autosize = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "autoshift")) { + font->autoshift = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "c")) { + err = parse_int_list(&font->chars, s); + } + else { + err = 1; + } + } + else { + if(*str) err = 1; + } + } + free(font_spec); + if(err) { + fprintf(stderr, "%s: invalid font spec\n", optarg); + return 1; + } + } + else { + font->name = font_spec; + } + break; + + case 'H': + str = optarg; + i = strtol(str, &str1, 0); + if(*str1 || i < 0) { + fprintf(stderr, "%s: invalid font height\n", str); + return 1; + } + opt.max_font_height = i; + break; + + case 'l': + str = optarg; + i = strtol(str, &str1, 0); + if(*str1 || i < 0) { + fprintf(stderr, "%s: invalid line height\n", str); + return 1; + } + opt.line_height = i; + break; + + case 'p': + opt.font_path = optarg; + break; + + case 's': + opt.show = 1; + break; + + case 't': + if(ic == (iconv_t) -1) { + ic = iconv_open("utf32le", "utf8"); + if(ic == (iconv_t) -1) { + fprintf(stderr, "can't convert utf8 data\n"); + return 1; + } + } + if((f = fopen(optarg, "r"))) { + int ok; + + ibuf_left = 0; + while((i = fread(ibuf + ibuf_left, 1, sizeof ibuf - ibuf_left, f)) > 0) { + // fprintf(stderr, "ibuf_left = %d, fread = %d\n", ibuf_left, i); + ibuf_ptr = ibuf; + ibuf_left += i; + do { + obuf_ptr = obuf; + obuf_left = sizeof obuf; + k = iconv(ic, &ibuf_ptr, &ibuf_left, &obuf_ptr, &obuf_left); + // fprintf(stderr, "k = %d, errno = %d, ibuf_left = %d, obuf_left = %d\n", k, k ? errno : 0, ibuf_left, obuf_left); + if(k >= 0 || (k == -1 && !obuf_left)) { + ok = 1; + if(!obuf_left) { + i = obuf[0] + (obuf[1] << 8) + (obuf[2] << 16) + (obuf[3] << 24); + if(i >= 0x20) { + insert_int_list(&opt.chars, i, i); + } + } + } + else { + ok = 0; + } + } + while(ok && ibuf_left); + if(k == -1 && errno == EILSEQ) { + perror("iconv"); + return 1; + } + if(ibuf_left) { + memcpy(ibuf, ibuf + sizeof ibuf - ibuf_left, ibuf_left); + } + } + fclose(f); + } + else { + perror(optarg); + return 1; + } + break; + + case 'v': + opt.verbose++; + break; + + case 999: + opt.test++; + break; + } + } + + if(ic != (iconv_t) -1) iconv_close(ic); + + // use default char list + if(!opt.chars.start) insert_int_list(&opt.chars, 0x20, 0x7f); + + argc -= optind; argv += optind; + + // FreeSans[size=16 prop=2 space_width=4 dy=16 c=0x1200,0x1000-0x2000] + if(argc != 1) { + fprintf(stderr, + "Usage: gfxboot-font [options] fontfile\n" + "Build font for boot loader.\n" + " -a, --add=first[-last]\n\tAdd chars from this range.\n" + " -c, --add-charset=charset\n\tAdd all chars from this charset.\n" + " -f, --font=font_spec\n\tUse this font. Spec format is fontname[option1 option2 ...]\n" + " -h, --help\n\tShow this help text.\n" + " -l, --line-height=n\n\tSet line height (default: font height).\n" + " -p, --font-path=font path\n\tFont path, elements separated by ':'.\n" + " -s, --show\n\tShow font info.\n" + " -t, --add-text=samplefile\n\tAdd all chars used in this file. File must be UTF-8 encoded.\n" + " -v, --verbose\n\tDump font info.\n" + ); + return 1; + } + + opt.file = argv[0]; + + if(opt.show) return show_font(opt.file); + + if((err = FT_Init_FreeType(&ft_lib))) { + fprintf(stderr, "FreeType init failed (err = %d)\n", err); + return 3; + } + + // open all fonts + for(i = 0, font = font_list.start; font; font = font->next) { + font->index = i++; + font->file_name = search_font(opt.font_path, font->name); + if(font->file_name) { + err = FT_New_Face(ft_lib, font->file_name, 0, &font->face); + if(!err) { + if(!font->size) { + if(font->face->num_fixed_sizes > 0) { + font->size = font->face->available_sizes[0].height; + } + } + if( + font->size && + !FT_Set_Pixel_Sizes(font->face, font->size, 0) + ) { + font->ok = 1; + } + } + } + } + + // build char list + for(n = opt.chars.start; n; n = n->next) { + for(i = n->first; i <= n->last; i++) { + cd = add_list(&char_list, new_mem(sizeof *cd)); + cd->c = i; + } + } + + // just check the list is really sorted + for(i = -1, cd = char_list.start; cd; cd = cd->next) { + if(cd->c <= i) { + fprintf(stderr, "internal error: char list not sorted\n"); + return 4; + } + i = cd->c; + } + + // render all chars + for(cd = char_list.start; cd; cd = cd->next) { + render_char(cd); + } + + // fix vertical glyph positions + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok) cd->y_ofs += cd->font->dy; + } + + if(!opt.test) for(cd = char_list.start; cd; cd = cd->next) add_bbox(cd); + +// ############## + + // get font dimensions + get_font_height(NULL, &font_height, &font_y_ofs); + + for(font = font_list.start; font; font = font->next) { + if(!font->ok) continue; + get_font_height(font, &i, &j); + font->height = i; + font->baseline = -j; + } + +// ############## + + FT_Done_FreeType(ft_lib); + + // label largest chars + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(cd->y_ofs - font_y_ofs + cd->bitmap_height >= font_height) cd->top = 1; + if(cd->y_ofs - font_y_ofs <= 0) cd->bottom = 1; + } + + for(cd = char_list.start; cd; cd = cd->next) make_prop(cd); + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) insert_int_list(&chars_missing, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok && cd->top) insert_int_list(&chars_top, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok && cd->bottom) insert_int_list(&chars_bottom, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(cd->bitmap_width > max_bitmap_width) max_bitmap_width = cd->bitmap_width; + if(cd->bitmap_height > max_bitmap_height) max_bitmap_height = cd->bitmap_height; + } + + for(cd = char_list.start; cd; cd = cd->next) encode_char(cd); + + memset(&fh, 0, sizeof fh); + + fh.magic = MAGIC; + fh.max_bitmap_width = max_bitmap_width; + fh.max_bitmap_height = max_bitmap_height; + fh.height = font_height; + fh.line_height = opt.line_height ?: fh.height + 2; + fh.baseline = -font_y_ofs; + + for(cd = char_list.start; cd; cd = cd->next) if(cd->ok) fh.entries++; + + // print font info + if(opt.verbose) { + printf("Font List\n"); + for(font = font_list.start; font; font = font->next) { + printf(" #%d %s (%s)\n", font->index, font->name, font->ok ? "ok" : "not used"); + printf(" File %s\n", font->file_name); + printf(" Size %d", font->size); + if(font->dy) printf(", dY %d", font->dy); + if(font->prop) printf(", Prop %d", font->prop); + if(font->space_width) printf(", SpaceWidth %d", font->space_width); + printf("\n"); + printf(" Height %d, Baseline %d\n", font->height, font->baseline); + if(font->chars.start) { + for(n = font->chars.start; n; n = n->next) { + printf(" c 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + } + } + printf("\n"); + } + + if(opt.verbose >= 2) { + printf("Requested Char List\n"); + for(n = opt.chars.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(opt.verbose) { + if(chars_missing.start) { + printf("Missing Chars\n"); + for(n = chars_missing.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(chars_top.start) { + printf("Top Chars\n"); + for(n = chars_top.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(chars_bottom.start) { + printf("Bottom Chars\n"); + for(n = chars_bottom.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + printf( + "Font Size\n Height: %d\n Baseline: %d\n Line Height: %d\n Bitmap Max: %d x %d\n\n", + font_height, -font_y_ofs, fh.line_height, + fh.max_bitmap_width, fh.max_bitmap_height + ); + + for(cd = char_list.start; cd; cd = cd->next) dump_char(cd); + } + + add_data(&font_file, &fh, sizeof fh); + + ofs = font_file.size + fh.entries * sizeof char_ofs; + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + i = 0; + add_bits(char_ofs, &i, 21, cd->c); + add_bits(char_ofs, &i, 19, ofs); + add_data(&font_file, char_ofs, sizeof char_ofs); + ofs += cd->data_len; + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + add_data(&font_file, cd->data, cd->data_len); + } + + write_data(&font_file, opt.file); + + return 0; +} + + +file_data_t *read_file(char *name) +{ + file_data_t *fd; + FILE *f; + + fd = new_mem(sizeof *fd); + + if(!name) return fd; + + f = fopen(name, "r"); + + if(!f) { perror(name); return fd; } + + if(fseek(f, 0, SEEK_END)) { + perror(name); + exit(30); + } + + fd->size = fd->real_size = ftell(f); + + if(fseek(f, 0, SEEK_SET)) { + perror(name); + exit(30); + } + + if(fd->size) { + fd->data = new_mem(fd->size); + if(!fd->data) { + fprintf(stderr, "malloc failed\n"); + exit(30); + } + } + + if(fread(fd->data, 1, fd->size, f) != fd->size) { + perror(name); + exit(30); + } + + fclose(f); + + return fd; +} + + +void dump_char(char_data_t *cd) +{ + int i, j, y0, y1, y2, x0, x1, x2, width; + unsigned char *p; + char c; + + if(!cd || !cd->ok) return; + + printf("Char 0x%04x '%s'", cd->c, utf32_to_utf8(cd->c)); + if(cd->top) printf(" top"); + if(cd->bottom) printf(" bottom"); + printf("\n"); + + if(cd->font) printf(" Font: #%d %s (%d)\n", cd->font->index, cd->font->name, cd->font->size); + + printf( + " Bitmap: %d x %d\n Advance: %d\n Offset: %d x %d\n", + cd->bitmap_width, cd->bitmap_height, + cd->x_advance, cd->x_ofs, cd->y_ofs + ); + + if(opt.verbose >= 2 && cd->data) { + printf(" Data[%d]:", cd->data_len); + for(i = 0; i < cd->data_len; i++) { + if(!(i & 7)) { + printf("\n "); + } + printf(" %02x", cd->data[i]); + } + printf("\n"); + } + + if(cd->bitmap) { + p = cd->bitmap; + + y0 = font_height + font_y_ofs; + y1 = y0 - cd->bitmap_height - cd->y_ofs; + y2 = y1 + cd->bitmap_height; + + x1 = cd->bitmap_width + cd->x_ofs; + if(cd->x_advance > x1) x1 = cd->x_advance; + + if(cd->x_ofs < 0) { + width = x1 - cd->x_ofs; + x1 = 0; + x0 = -cd->x_ofs; + } + else { + width = x1; + x1 = cd->x_ofs; + x0 = 0; + } + + x2 = x1 + cd->bitmap_width; + + // printf("y0 = %d, y1 = %d, y2 = %d\n", y0, y1, y2); + // printf("x0 = %d, x1 = %d, x2 = %d, width = %d\n", x0, x1, x2, width); + + printf(" "); + c = ' '; + for(i = 0; i < cd->x_advance + x0; i++ ) { + if(i == x0) c = '_'; + printf("%c", c); + } + printf("\n"); + + for(j = 0; j < font_height; j++) { + printf(" %s", j == y0 - 1 ? "->|" : " |"); + if(j < y1 || j >= y2) { + for(i = 0; i < width; i++) printf("."); + } + else { + for(i = 0; i < width; i++) { + if(i < x1 || i >= x2) { + printf("."); + } + else { + c = p[(j - y1) * cd->bitmap_width + i - x1]; + if(c == 0) { + c = ' '; + } + else if(c >= MAX_GRAY) { + c = '#'; + } + else { + c += '0'; + if(c > '9') c += 'a' - '9' - 1; + } + printf("%c", c); + } + } + } + printf("|%s\n", j == y0 - 1 ? "<-" : ""); + } + + printf(" "); + c = ' '; + for(i = 0; i < cd->x_advance + x0; i++ ) { + if(i == x0) c = '-'; + printf("%c", c); + } + printf("\n"); + } + + printf("\n"); +} + + +void add_data(file_data_t *d, void *buffer, unsigned size) +{ + if(!size || !d || !buffer) return; + + if(d->size + size > d->real_size) { + d->real_size = d->size + size + 0x1000; + d->data = realloc(d->data, d->real_size); + if(!d->data) d->real_size = 0; + } + + if(d->size + size <= d->real_size) { + memcpy(d->data + d->size, buffer, size); + d->size += size; + } + else { + fprintf(stderr, "Oops, out of memory? Aborted.\n"); + exit(10); + } +} + + +void write_data(file_data_t *d, char *name) +{ + FILE *f; + + f = strcmp(name, "-") ? fopen(name, "w") : stdout; + + if(!f) { + perror(name); + return; + } + + if(fwrite(d->data, d->size, 1, f) != 1) { + perror(name); + exit(3); + } + + fclose(f); +} + + +int intersect(int first0, int last0, int first1, int last1) +{ + return + (first1 >= first0 && first1 <= last0 + 1) || + (last1 >= first0 - 1 && last1 <= last0) || + (first1 < first0 && last1 > last0); +} + + +void insert_int_list(list_t *list, int first, int last) +{ + n_set_t *n, *p, *next; + + for(n = list->start; n; n = n->next) { + if(intersect(n->first, n->last, first, last)) { + if(first < n->first) n->first = first; + if(last > n->last) n->last = last; + break; + } + } + + if(!n) { /* not joined */ + if(!(n = list->start) || first < n->first) { + list->start = p = new_mem(sizeof *p); + p->next = n; + p->first = first; + p->last = last; + } + else { + for(n = list->start; n; n = n->next) { + if(!n->next || first < n->next->first) { + p = new_mem(sizeof *p); + p->next = n->next; + p->first = first; + p->last = last; + n->next = p; + if(!p->next) list->end = p; + break; + } + } + } + } + + for(n = list->start; n; n = next) { + if(!(next = n->next)) break; + + if(intersect(n->first, n->last, next->first, next->last)) { + if(next->first < n->first) n->first = next->first; + if(next->last > n->last) n->last = next->last; + n->next = next->next; + if(!n->next) list->end = n; + free(next); + next = n; + } + } +} + + +void *add_list(list_t *list, void *entry) +{ + if(list->end) { + ((list_any_t *) list->end)->next = entry; + } + list->end = entry; + + if(!list->start) { + list->start = entry; + } + + return entry; +} + + +void *new_mem(size_t size) +{ + return calloc(size, 1); +} + + +char *new_str(char *str) +{ + return str ? strdup(str) : str; +} + + +int parse_int_list(list_t *list, char *str) +{ + int err = 0, i, j, k; + char *s, *s1, *t; + + if(!str) return 0; + + while(isspace(*str)) str++; + + if(!*str) return 0; + + t = str = new_str(str); + + while((s = strsep(&t, ","))) { + if(sscanf(s, "%i - %i%n", &i, &j, &k) == 2 && k == strlen(s)) { + insert_int_list(list, i, j); + } + else { + i = strtol(s, &s1, 0); + if(*s1) { + err = 1; + break; + } + insert_int_list(list, i, i); + } + } + + free(str); + + return err; +} + + +char *search_font(char *font_path, char *name) +{ + int i; + char *font_name = NULL; + char *cur_path, *sep; + struct stat sbuf; + static char *suffix[] = { "", ".otf", ".ttf", ".ttc", ".pfa", ".pfb", ".pcf.gz" }; + + if(!font_path || !name) return NULL; + + while(*font_path) { + cur_path = strdup(font_path); + + if((sep = strchr(cur_path, ':'))) *sep = 0; + + for(i = 0; i < sizeof suffix / sizeof *suffix; i++) { + asprintf(&font_name, "%s/%s%s", cur_path, name, suffix[i]); + if(!stat(font_name, &sbuf) && S_ISREG(sbuf.st_mode)) break; + free(font_name); + font_name = NULL; + } + + if(i < sizeof suffix / sizeof *suffix) { + free(cur_path); + break; + } + + if(sep) { + font_path += sep - cur_path + 1; + } + else { + font_path = ""; + } + + free(cur_path); + } + + return font_name; +} + + +void render_char(char_data_t *cd) +{ + n_set_t *n; + int err, glyph_index; + FT_GlyphSlot glyph; + int i, j; + unsigned char uc; + + if(cd->ok) { + glyph_index = FT_Get_Char_Index(cd->font->face, cd->c); + if(!glyph_index) return; + + err = FT_Load_Char( + cd->font->face, + cd->c, + FT_LOAD_RENDER | + (cd->font->nobitmap ? FT_LOAD_NO_BITMAP : 0) | + (cd->font->autohint ? cd->font->autohint == 1 ? FT_LOAD_NO_AUTOHINT : FT_LOAD_FORCE_AUTOHINT : 0) + ); + if(err) return; + } + else { + font_t *font; + + for(font = font_list.start; font; font = font->next) { + if(!font->ok) continue; + if(font->chars.start) { + for(n = font->chars.start; n; n = n->next) { + if(cd->c >= n->first && cd->c <= n->last) break; + } + if(!n) continue; + } + + glyph_index = FT_Get_Char_Index(font->face, cd->c); + if(!glyph_index) continue; + + err = FT_Load_Char( + font->face, + cd->c, + FT_LOAD_RENDER | + (font->nobitmap ? FT_LOAD_NO_BITMAP : 0) | + (font->autohint ? font->autohint == 1 ? FT_LOAD_NO_AUTOHINT : FT_LOAD_FORCE_AUTOHINT : 0) + ); + if(err) continue; + + cd->ok = 1; + cd->font = font; + + break; + } + } + + if(!cd->ok) return; + + glyph = cd->font->face->glyph; + if(cd->font->bold) FT_GlyphSlot_Embolden(glyph); + + cd->bitmap_width = glyph->bitmap.width; + cd->bitmap_height = glyph->bitmap.rows; + free(cd->bitmap); + cd->bitmap = new_mem(cd->bitmap_width * cd->bitmap_height); + + cd->x_advance = glyph->advance.x / 64.; + cd->x_ofs = glyph->bitmap_left; + cd->y_ofs = glyph->bitmap_top - glyph->bitmap.rows; + + for(j = 0; j < cd->bitmap_height; j++) { + for(i = 0; i < cd->bitmap_width; i++) { + switch(glyph->bitmap.pixel_mode) { + case FT_PIXEL_MODE_MONO: + uc = ((glyph->bitmap.buffer[i / 8 + j * glyph->bitmap.pitch] >> (7 - (i & 7))) & 1) * MAX_GRAY; + break; + + case FT_PIXEL_MODE_GRAY: +#if COLOR_QUANT == 1 + uc = (glyph->bitmap.buffer[i + j * glyph->bitmap.pitch] * (MAX_GRAY + 1)) / (255 + 1); +#else + uc = (glyph->bitmap.buffer[i + j * glyph->bitmap.pitch] * (2 * MAX_GRAY)) / (255 + 1); + uc = (uc + 1) / 2; +#endif + break; + + default: + uc = 0; + } + cd->bitmap[i + j * cd->bitmap_width] = uc; + } + } + +#if 0 + printf( + "bitmap: mode %d, %d x %d, + %d x %d, advance %f x %f\n", + glyph->bitmap.pixel_mode, + glyph->bitmap.width, + glyph->bitmap.rows, + glyph->bitmap_left, + glyph->bitmap_top, + glyph->advance.x / 64., + glyph->advance.y / 64. + ); + + printf( + "metrics:\n size %f x %f\n bearing %f x %f, advance %f\n", + glyph->metrics.width / 64., glyph->metrics.height / 64., + glyph->metrics.horiBearingX / 64., glyph->metrics.horiBearingY / 64., + glyph->metrics.horiAdvance / 64. + ); +#endif +} + + +int empty_row(char_data_t *cd, int row) +{ + unsigned char *p1, *p2; + + p2 = (p1 = cd->bitmap + row * cd->bitmap_width) + cd->bitmap_width; + while(p1 < p2) if(*p1++) return 0; + + return 1; +} + + +int empty_column(char_data_t *cd, int col) +{ + int i; + unsigned char *p; + + for(p = cd->bitmap + col, i = 0; i < cd->bitmap_height; i++, p += cd->bitmap_width) { + if(*p) return 0; + } + + return 1; +} + + +void add_bbox(char_data_t *cd) +{ + int i; + unsigned char *bitmap; + int width, height, dx, dy; + + if(!cd->ok) return; + + width = cd->bitmap_width; + height = cd->bitmap_height; + dx = dy = 0; + + while(height && empty_row(cd, height - 1)) height--; + while(width && empty_column(cd, width - 1)) width--; + + for(dx = 0; dx < width && empty_column(cd, dx); dx++); + for(dy = 0; dy < height && empty_row(cd, dy); dy++); + + width -= dx; + height -= dy; + + if(width != cd->bitmap_width || height != cd->bitmap_height) { + bitmap = new_mem(width * height); + + for(i = 0; i < height; i++) { + memcpy(bitmap + i * width, cd->bitmap + dx + (i + dy) * cd->bitmap_width, width); + } + + free(cd->bitmap); + cd->bitmap = bitmap; + + cd->x_ofs += dx; + cd->y_ofs += cd->bitmap_height - height - dy; + + cd->bitmap_width = width; + cd->bitmap_height = height; + } + + if(!cd->bitmap_width || !cd->bitmap_height) { + cd->x_ofs = cd->y_ofs = 0; + } +} + + +/* + * Fake proprtionally spaced font from fixed size font. + */ +void make_prop(char_data_t *cd) +{ + int width; + + if(!cd->ok || !cd->font->prop) return; + + width = cd->bitmap_width ? cd->bitmap_width + cd->font->prop : cd->font->space_width; + cd->x_ofs = cd->font->prop; + cd->x_advance = width; +} + + +char *utf32_to_utf8(int u8) +{ + static char buf[16]; + static iconv_t ic = (iconv_t) -1; + char *ibuf, *obuf; + size_t obuf_left, ibuf_left; + int i; + + *buf = 0; + + if(ic == (iconv_t) -1) { + ic = iconv_open("utf8", "utf32le"); + if(ic == (iconv_t) -1) { + fprintf(stderr, "Error: can't convert utf8 data.\n"); + exit(1); + } + } + + ibuf = (char *) &u8; + obuf = buf; + ibuf_left = 4; + obuf_left = sizeof buf - 1; + + i = iconv(ic, &ibuf, &ibuf_left, &obuf, &obuf_left); + + if(i >= 0) { + i = sizeof buf - 1 - obuf_left; + buf[i] = 0; + } + else { + fprintf(stderr, "Warning: failed to convert 0x%x to utf8.\n", u8); + } + + return buf; +} + + +void add_bits(unsigned char *buf, int *buf_ptr, int bits, unsigned data) +{ + int rem, ptr; + + while(bits > 0) { + ptr = *buf_ptr >> 3; + rem = 8 - (*buf_ptr & 7); + if(rem > bits) rem = bits; + buf[ptr] = (buf[ptr] & ((1 << (*buf_ptr & 7)) - 1)) + ((data & ((1 << rem) - 1)) << (*buf_ptr & 7)); + *buf_ptr += rem; + bits -= rem; + data >>= rem; + } +} + + +unsigned read_unsigned_bits(unsigned char *buf, int *buf_ptr, int bits) +{ + int rem, ptr; + unsigned data = 0, dptr = 0; + + while(bits > 0) { + ptr = *buf_ptr >> 3; + rem = 8 - (*buf_ptr & 7); + if(rem > bits) rem = bits; + data += ((buf[ptr] >> (*buf_ptr & 7)) & ((1 << rem) - 1)) << dptr; + dptr += rem; + *buf_ptr += rem; + bits -= rem; + } + + return data; +} + + +int read_signed_bits(unsigned char *buf, int *buf_ptr, int bits) +{ + int i; + + i = read_unsigned_bits(buf, buf_ptr, bits); + + if(bits == 0) return i; + + if((i & (1 << (bits - 1)))) { + i += -1 << bits; + } + + return i; +} + + +int signed_bits(int num) +{ + int bits = 32; + int val = num & (1 << 31); + + if(num == 0) return 0; + + while((num & (1 << 31)) == val) { + bits--; + num <<= 1; + } + + return bits + 1; +} + + +int unsigned_bits(unsigned num) +{ + int bits = 0; + + if(num == 0) return 0; + + while(num) { + num >>= 1; + bits++; + } + + return bits; +} + + +void encode_cnt(unsigned char *buf, int *buf_ptr, int lc, int lc_cnt) +{ + if((lc_cnt - 2) >= (1 << GRAY_BIT_COUNT)) { + fprintf(stderr, "cnt %d too large\n", lc_cnt); + exit(1); + } + + if(lc_cnt >= 2) { + *buf_ptr -= GRAY_BITS; + add_bits(buf, buf_ptr, GRAY_BITS, lc == 0 ? REP_BG : REP_FG); + // printf("(%d)", lc == 0 ? REP_BG : REP_FG); + add_bits(buf, buf_ptr, GRAY_BIT_COUNT, lc_cnt - 2); + // printf("(%d)", lc_cnt - 2); + } + else if(lc_cnt) { + add_bits(buf, buf_ptr, GRAY_BITS, lc); + // printf("[%d]", lc); + } +} + + +void encode_char(char_data_t *cd) +{ + int i, j, bits, lc_cnt; + unsigned char *buf; + int buf_ptr; + unsigned type; + unsigned char col[MAX_GRAY + 1]; + int lc; + + if(!cd->ok) return; + + // just large enough + buf = new_mem(cd->bitmap_width * cd->bitmap_height + 5 * 8 + 1); + buf_ptr = 0; + + memset(col, 0, sizeof col); + + for(i = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + if(cd->bitmap[i] <= MAX_GRAY) { + col[cd->bitmap[i]] = 1; + } + } + + type = 0; + for(i = 1; i < MAX_GRAY; i++) { + if(col[i]) { + type = 1; + break; + } + } + + // type 0: mono, 1: grays + + // always 1 + type = 1; + + add_bits(buf, &buf_ptr, 2, type); + + bits = unsigned_bits(cd->bitmap_width); + j = unsigned_bits(cd->bitmap_height); + if(j > bits) bits = j; + j = signed_bits(cd->x_advance); + if(j > bits) bits = j; + j = signed_bits(cd->x_ofs); + if(j > bits) bits = j; + j = signed_bits(cd->y_ofs); + if(j > bits) bits = j; + + if(!bits) bits = 1; + + if(bits > 8) { + free(buf); + cd->ok = 0; + + return; + } + + add_bits(buf, &buf_ptr, 3, bits - 1); + add_bits(buf, &buf_ptr, bits, cd->bitmap_width); + add_bits(buf, &buf_ptr, bits, cd->bitmap_height); + add_bits(buf, &buf_ptr, bits, cd->x_ofs); + add_bits(buf, &buf_ptr, bits, cd->y_ofs); + add_bits(buf, &buf_ptr, bits, cd->x_advance); + + switch(type) { + case 0: + for(i = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + add_bits(buf, &buf_ptr, 1, cd->bitmap[i] ? 1 : 0); + } + break; + + case 1: + lc = -1; + for(i = lc_cnt = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + if(cd->bitmap[i] == lc && (lc == 0 || lc == MAX_GRAY) && lc_cnt < ((1 << GRAY_BIT_COUNT) + 1)) { + lc_cnt++; + } + else { + if(lc_cnt) { + encode_cnt(buf, &buf_ptr, lc, lc_cnt); + lc_cnt = 0; + lc = -1; + } + add_bits(buf, &buf_ptr, GRAY_BITS, cd->bitmap[i]); + // printf("[%d]", cd->bitmap[i]); + } + lc = cd->bitmap[i]; + } + if(lc_cnt) { + encode_cnt(buf, &buf_ptr, lc, lc_cnt); + } + break; + } + + cd->data = new_mem(cd->data_len = ((buf_ptr + 7) >> 3)); + memcpy(cd->data, buf, cd->data_len); + + free(buf); +} + + +int show_font(char *name) +{ + int i, j, ofs, ofs2, bits, lc, lc_cnt, bitmap_len; + file_data_t *font_file; + font_header_t fh; + unsigned type; + char_data_t *cd; + + opt.verbose++; + + font_file = read_file(name); + + if(font_file->size < sizeof fh) return 0; + + memcpy(&fh, font_file->data, sizeof fh); + + if(fh.magic != MAGIC) { + fprintf(stderr, "%s: wrong file format\n", name); + return 1; + } + + if(font_file->size < sizeof fh + fh.entries * 5) { + fprintf(stderr, "%s: file too short\n", name); + return 2; + } + + font_height = fh.height; + font_y_ofs = -fh.baseline; + + for(i = 0; i < fh.entries; i++) { + cd = add_list(&char_list, new_mem(sizeof *cd)); + j = 0; + cd->c = read_unsigned_bits(font_file->data + sizeof fh + i * 5, &j, 21); + ofs = read_unsigned_bits(font_file->data + sizeof fh + i * 5, &j, 19); + + if(i != fh.entries - 1) { + j = 21; + ofs2 = read_unsigned_bits(font_file->data + sizeof fh + (i + 1) * 5, &j, 19); + } + else { + ofs2 = font_file->size; + } + + if(ofs2 < ofs || ofs2 > font_file->size) { + fprintf(stderr, "%s: invalid data for chhar 0x%04x\n", name, cd->c); + return 3; + } + + cd->data = new_mem(cd->data_len = ofs2 - ofs); + memcpy(cd->data, font_file->data + ofs, cd->data_len); + } + + for(cd = char_list.start; cd; cd = cd->next) { + j = 0; + type = read_unsigned_bits(cd->data, &j, 2); + bits = read_unsigned_bits(cd->data, &j, 3) + 1; + + if(type > 1) { + fprintf(stderr, "%s: unknown type %d for char 0x%04x\n", name, type, cd->c); + return 3; + } + + cd->bitmap_width = read_unsigned_bits(cd->data, &j, bits); + cd->bitmap_height = read_unsigned_bits(cd->data, &j, bits); + cd->x_ofs = read_signed_bits(cd->data, &j, bits); + cd->y_ofs = read_signed_bits(cd->data, &j, bits); + cd->x_advance = read_signed_bits(cd->data, &j, bits); + + cd->bitmap = new_mem(bitmap_len = cd->bitmap_width * cd->bitmap_height); + + switch(type) { + case 0: + for(i = 0; i < bitmap_len; i++) { + cd->bitmap[i] = read_unsigned_bits(cd->data, &j, 1) ? MAX_GRAY : 0; + } + break; + + case 1: + for(i = 0; i < bitmap_len;) { + lc = read_unsigned_bits(cd->data, &j, GRAY_BITS); + // printf("(%d)", lc); + if(lc <= MAX_GRAY) { + cd->bitmap[i++] = lc; + continue; + } + lc = lc == REP_BG ? 0 : MAX_GRAY; + lc_cnt = read_unsigned_bits(cd->data, &j, GRAY_BIT_COUNT) + 3; + // printf("(%d)", lc_cnt); + while(i < bitmap_len && lc_cnt--) cd->bitmap[i++] = lc; + } + break; + } + + cd->ok = 1; + } + + printf( + "Font Size\n Height: %d\n Baseline: %d\n Line Height: %d\n\n", + font_height, -font_y_ofs, fh.line_height + ); + + for(cd = char_list.start; cd; cd = cd->next) dump_char(cd); + + return 0; +} + + +void get_font_height(font_t *font, int *height, int *y_ofs) +{ + int h, dy, i; + char_data_t *cd; + + // get font dimensions + h = dy = 0; + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(font && cd->font != font) continue; + if(cd->y_ofs < dy) dy = cd->y_ofs; + i = cd->bitmap_height + cd->y_ofs; + if(i > h) h = i; + } + + *height = h - dy; + *y_ofs = dy; +} + + diff --git a/gfxboot-x11.c b/gfxboot-x11.c new file mode 100644 index 0000000..cc10fac --- /dev/null +++ b/gfxboot-x11.c @@ -0,0 +1,687 @@ +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define FAKE_WIDTH 800 +#define FAKE_HEIGHT 600 + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gfxboot_data_t *gfxboot_data; + +struct { + unsigned width, height; + Display *display; + Window window; + GC gc; + XIM xim; + XIC xic; + XImage *ximage; + Visual *visual; + int depth; + int timeout; +} config; + +XImage fake_ximage = { + .width = FAKE_WIDTH, .height = FAKE_HEIGHT, + .bitmap_pad = 32, .bytes_per_line = FAKE_WIDTH * 4, .bits_per_pixel = 32, + .red_mask = 0xff0000, .green_mask = 0xff00, .blue_mask = 0xff +}; + +struct { + unsigned verbose:1; + unsigned help:1; + unsigned x11:1; + FILE *debug_file; +} opt; + +struct option options[] = { + { "help", 0, NULL, 'h' }, + { "verbose", 0, NULL, 'v' }, + { "no-x11", 0, NULL, 'n' }, + { "file", 1, NULL, 1 }, + { } +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void help(void); +void run_debug_commands(FILE *file); + +int NewXErrorHandler(Display *display, XErrorEvent *xev); +int NewXIOErrorHandler(Display *display); +color_bits_t mask_to_color_bits(unsigned mask); + +int x11_create_window(unsigned width, unsigned height); +int x11_close_window(void); +int x11_event_loop(void); + +int x11_gfxboot_init(void); +int x11_gfxboot_process_key(int *key); +void x11_gfxboot_print_timeout(int timeout, void *data); +void x11_gfxboot_clear_timeout(void *data); +void x11_gfxboot_data_free(void); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int main(int argc, char **argv) +{ + int i; + + opterr = 0; + + opt.x11 = 1; + + while((i = getopt_long(argc, argv, "hv", options, NULL)) != -1) { + switch(i) { + case 1: + if(!strcmp(optarg, "-")) { + opt.debug_file = stdin; + } + else { + opt.debug_file = fopen(optarg, "r"); + } + break; + + case 'v': + opt.verbose = 1; + break; + + case 'n': + opt.x11 = 0; + break; + + default: + help(); + return i == 'h' ? 0 : 1; + } + } + + if(argc == optind + 1) { + if(chdir(argv[optind])) { + perror(argv[optind]); + return 1; + } + } + else { + fprintf(stderr, "gfxboot-x11: directory missing\n"); + help(); + return 1; + } + + if(opt.x11) { + XSetErrorHandler(NewXErrorHandler); + XSetIOErrorHandler(NewXIOErrorHandler); + + if(x11_create_window(FAKE_WIDTH, FAKE_HEIGHT)) return 1; + } + else { + config.ximage = &fake_ximage; + config.ximage->data = calloc(1, (size_t) (config.ximage->bytes_per_line * config.ximage->height)); + config.width = (unsigned) config.ximage->width; + config.height = (unsigned) config.ximage->height; + config.depth = config.ximage->bits_per_pixel; + } + + config.timeout = opt.debug_file ? 0 : 10; + + if(x11_gfxboot_init()) return 2; + + run_debug_commands(opt.debug_file); + + if(opt.x11) { + x11_gfxboot_print_timeout(config.timeout, NULL); + x11_event_loop(); + x11_close_window(); + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Display short usage message. +void help() +{ + printf( + "Usage: gfxboot-x11 [OPTIONS] DIR\n" + "\n" + "Run gfxboot file in DIR.\n" + "\n" + "Options:\n" + " --file FILE Run debug commands from FILE at startup.\n" + " -v, --verbose Show more detailed info.\n" + " -h, --help Show this text.\n" + "\n" + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void run_debug_commands(FILE *file) +{ + if(!file) return; + + char *buf = NULL; + size_t len = 0; + ssize_t line_len; + + while((line_len = getline(&buf, &len, file)) > 0) { + buf[line_len - 1] = 0; // strip newline + gfxboot_debug_command(buf); + } + + fclose(file); + + free(buf); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int NewXErrorHandler(Display *display, XErrorEvent *xev) +{ + gfxboot_log("X Error\n"); + + exit(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int NewXIOErrorHandler(Display *display) +{ + // gfxboot_log("X IO Error\n"); + + exit(0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +color_bits_t mask_to_color_bits(unsigned mask) +{ + color_bits_t x = { 0, 0 }; + + if(mask) for(; !(mask & 1); mask >>= 1, x.pos++); + if(mask) for(; mask; mask >>= 1, x.size++); + + return x; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_create_window(unsigned width, unsigned height) +{ + char *title = "gfxboot2"; + + config.width = width; + config.height = height; + + XSizeHints hints; + + hints.width_inc = 1; + hints.height_inc = 1; + + hints.min_width = hints.max_width = hints.width = (int) config.width; + hints.min_height = hints.max_height = hints.height = (int) config.height; + + hints.flags = PResizeInc | PSize | PMinSize | PMaxSize; + + if((config.display = XOpenDisplay(NULL)) == NULL) { + gfxboot_log("Error: failed to open display.\n"); + + return 1; + } + + config.window = XCreateSimpleWindow( + config.display, DefaultRootWindow(config.display), + 0, 0, + config.width, config.height, + 0, 0, 0 + ); + + gfxboot_log("window id: 0x%08x\n", (unsigned) config.window); + + if(!config.window) { + gfxboot_log("Error: X server does not co-operate\n"); + XCloseDisplay(config.display); + + return 2; + } + + config.xim = XOpenIM(config.display, NULL, NULL, NULL); + if(config.xim) { + config.xic = XCreateIC(config.xim, + XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + XNClientWindow, config.window, + XNFocusWindow, config.window, + NULL + ); + } + + fprintf(stderr, "xim = %p, xic = %p\n", config.xim, config.xic); + + XSetWindowAttributes xswa; + + xswa.backing_store = Always; + xswa.backing_planes = 1; + xswa.save_under = True; + + XChangeWindowAttributes(config.display, config.window, CWBackingStore | CWBackingPlanes | CWSaveUnder, &xswa); + + XSelectInput(config.display, config.window, StructureNotifyMask); + XSetStandardProperties(config.display, config.window, title, title, None, NULL, 0, &hints); + + XMapWindow(config.display, config.window); + XSync(config.display, False); + + XSelectInput(config.display, config.window, NoEventMask); + + config.visual = DefaultVisual(config.display, DefaultScreen(config.display)); + config.depth = DefaultDepth(config.display, DefaultScreen(config.display)); + + if( + ( + config.visual->class != TrueColor && + config.visual->class != DirectColor + ) || + config.depth < 15 + ) { + return 3; + } + + config.gc = XCreateGC(config.display, config.window, 0, 0); + + config.ximage = XCreateImage( + config.display, + config.visual, + (unsigned) config.depth, + ZPixmap, + 0, + NULL, + config.width, + config.height, + 32, + 0 + ); + + if(!config.ximage) { + gfxboot_log("Error: failed to create XImage\n"); + XCloseDisplay(config.display); + + return 4; + } + + config.ximage->data = calloc(1, (size_t) (config.ximage->height * config.ximage->bytes_per_line)); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_close_window(void) +{ + XFreeGC(config.display, config.gc); + XDestroyImage(config.ximage); + XCloseDisplay(config.display); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_event_loop() +{ + int exit_event = 0; + + XSelectInput(config.display, config.window, KeyPressMask|ExposureMask|StructureNotifyMask|ButtonPressMask|PointerMotionMask); + + while(!exit_event) { + int action __attribute__ ((unused)) = 0; + XEvent xev; + KeySym ks; + // buf just needs to be large enough to hold a key code + char buf[16], *buf_ptr; + int buf_len, key_code; + char *key_name; + + while(XPending(config.display)) { + XNextEvent(config.display, &xev); + switch(xev.type) { + + case KeyPress: + if(config.xic) { + buf_len = Xutf8LookupString(config.xic, (XKeyEvent *) &xev, buf, sizeof buf - 1, &ks, NULL); + } + else { + buf_len = XLookupString((XKeyEvent *) &xev, buf, sizeof buf - 1, &ks, NULL); + } + if(buf_len >= 0) buf[buf_len + 1] = 0; + buf_ptr = buf; + key_code = gfx_utf8_dec(&buf_ptr, &buf_len); + if(key_code < 0) key_code = -key_code; + key_name = XKeysymToString(ks); + gfxboot_debug(2, 2, "x11_event_loop: key = 0x%02x '%s'\n", key_code, key_name); + // '^C' + if(key_code == 0x03) exit_event = 1; + action = x11_gfxboot_process_key(&key_code); + break; + + case Expose: + // gfxboot_log("XEvent.type == Expose(%d, %d, %d, %d)\n", xev.xexpose.x, xev.xexpose.y, xev.xexpose.width, xev.xexpose.height); + break; + + case ConfigureNotify: + // gfxboot_log("XEvent.type == ConfigureNotify\n"); + if(xev.xconfigure.width != (int) config.width || xev.xconfigure.height != (int) config.height) { + gfxboot_log("ConfigureNotify: oops\n"); + } + break; + + case ButtonPress: + gfxboot_log("XEvent.type == ButtonPress\n"); + break; + + default: + // gfxboot_log("XEvent.type == 0x%x\n", (int) xev.type); + break; + } + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_gfxboot_init() +{ + x11_gfxboot_data_free(); + + gfxboot_data = calloc(1, sizeof *gfxboot_data); + if(!gfxboot_data) return 1; + + // don't log to console + gfxboot_data->vm.debug.log_level_console = -1; + + gfxboot_data->menu.entry = 0; + gfxboot_data->menu.nested = 0; + gfxboot_data->menu.timeout.max = config.timeout; + + gfxboot_data->screen.real.ptr = config.ximage->data; + gfxboot_data->screen.real.width = (int) config.width; + gfxboot_data->screen.real.height = (int) config.height; + + gfxboot_data->screen.real.bytes_per_line = config.ximage->bytes_per_line; + gfxboot_data->screen.real.bytes_per_pixel = config.ximage->bitmap_pad / 8; + gfxboot_data->screen.real.bits_per_pixel = config.ximage->bits_per_pixel; + + gfxboot_data->screen.real.red = mask_to_color_bits(config.ximage->red_mask); + gfxboot_data->screen.real.green = mask_to_color_bits(config.ximage->green_mask); + gfxboot_data->screen.real.blue = mask_to_color_bits(config.ximage->blue_mask); + + unsigned u = ~(config.ximage->red_mask | config.ximage->green_mask | config.ximage->blue_mask); + u &= ((uint64_t) 1 << (gfxboot_data->screen.real.bytes_per_pixel * 8)) - 1; + gfxboot_data->screen.real.res = mask_to_color_bits(u); + + // reserve 16 MiB for our VM + gfxboot_data->vm.mem.size = 16 * (1 << 20); + gfxboot_data->vm.mem.ptr = calloc(1, gfxboot_data->vm.mem.size); + if(!gfxboot_data->vm.mem.ptr) return 1; + + if(gfxboot_init()) return 1; + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_gfxboot_process_key(int *key) +{ + int action; + + if(!gfxboot_data || !key) return 0; + + gfxboot_debug(2, 2, "x11_gfxboot_process_key: key = 0x%x '%s'\n", *key, *key >= ' ' ? gfx_utf8_enc((unsigned) *key) : ""); + + if(gfxboot_data->menu.timeout.current > 0) { + // grub_env_unset("timeout"); + // grub_env_unset("fallback"); + x11_gfxboot_clear_timeout(NULL); + } + + action = gfxboot_process_key((unsigned) *key); + + gfxboot_debug(1, 2, "x11_gfxboot_process_key: action = %d.%02x\n", action >> 8, action & 0xff); + + *key = 0; + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_print_timeout(int timeout, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = timeout; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_clear_timeout(void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = 0; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to serial line and/or console. +// +// dst - bitmask; bit 0: serial, bit 1: console +// +int gfxboot_printf(int dst, const char *format, ...) +{ + int len; + char *s; + int log_level_serial = (signed char) ((dst >> 8) & 0xff); + int log_level_console = (signed char) ((dst >> 16) & 0xff); + + if(!format) return 0; + + va_list args; + va_start(args, format); + len = vasprintf(&s, format, args); + va_end(args); + + if( + (dst & 1) && + (!gfxboot_data || log_level_serial <= gfxboot_data->vm.debug.log_level_serial) + ) { + fwrite(s, (size_t) len, 1, stdout); + fflush(stdout); + } + + if( + (dst & 2) && + gfxboot_data && + log_level_console <= gfxboot_data->vm.debug.log_level_console + ) { + char *t = s; + while(*t) { + if(*t == '\n') gfx_console_putc('\r', 1); + gfx_console_putc((unsigned char) *t++, 1); + } + } + + free(s); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_asprintf(char **str, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = vasprintf(str, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = vsnprintf(str, size, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_sys_free(void *ptr) +{ + if(ptr) free(ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned long gfxboot_sys_strlen(const char *s) +{ + return strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_strcmp(const char *s1, const char *s2) +{ + return strcmp(s1, s2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base) +{ + return strtol(nptr, endptr, base); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf) +{ + int size = -1; + char *tmp = NULL; + struct stat sbuf; + int fd, len; + + *buf = NULL; + + if(!name) return size; + + fd = open(name, O_RDONLY); + + gfxboot_log("open(%s) = %d\n", name, fd); + + if(fd >= 0) { + if(!fstat(fd, &sbuf)) { + size = sbuf.st_size; + } + + if(size > 0) { + *buf = tmp = malloc((size_t) size); + while(size > 0) { + len = read(fd, tmp, (size_t) size); + if(len <= 0) break; + size -= len; + tmp += len; + } + } + + close(fd); + + if(size > 0) { + *buf = NULL; + free(tmp); + size = -1; + } + else { + size = sbuf.st_size; + } + } + + gfxboot_log("read(%s) = %d\n", name, size); + + return size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_screen_update(area_t area) +{ + if(opt.x11) { + XPutImage( + config.display, config.window, config.gc, config.ximage, + area.x, area.y, area.x, area.y, (unsigned) area.width, (unsigned) area.height + ); +} +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_getkey() +{ + int key = 0; + struct termios tio_old, tio; + + tcgetattr(0, &tio); + tio_old = tio; + tio.c_lflag &= (unsigned) ~(ICANON | ECHO); + tcsetattr(0, TCSANOW, &tio); + + key = fgetc(stdin); + + tcsetattr(0, TCSANOW, &tio_old); + + if(key == EOF) key = 0; + + return key; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_data_free() +{ + if(gfxboot_data) { + free(gfxboot_data->menu.entries); + free(gfxboot_data->vm.mem.ptr); + + free(gfxboot_data); + } + + gfxboot_data = NULL; +} diff --git a/gfxboot.c b/gfxboot.c new file mode 100644 index 0000000..7eb7a83 --- /dev/null +++ b/gfxboot.c @@ -0,0 +1,404 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// program functions + +static uint64_t gfx_decode_number(const void *data, unsigned len); +static unsigned decode_raw_instr(uint8_t *data, decoded_instr_t *instr); + +static inline uint64_t tsc(void) +{ +#if defined (__x86_64__) + uint32_t eax, edx; + + asm volatile ( + "rdtsc\n" + : "=a" (eax), "=d" (edx) + ); + + return ((uint64_t) edx << 32) + eax; +#elif defined (__i386__) + uint64_t tsc; + + asm volatile ( + "rdtsc" + : "=A" (tsc) + ); + + return tsc; +#else + #error "OOPS" + return 0; +#endif +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t gfx_decode_number(const void *data, unsigned len) +{ + const uint8_t *p = data; + uint64_t val = 0; + + p += len; + + while(len--) { + val <<= 8; + val += *--p; + } + + return val; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_program_init(obj_id_t program) +{ + gfxboot_data->vm.error = (error_t ) { }; + + gfxboot_data->vm.debug.steps = 0; + gfxboot_data->vm.debug.log_prompt = 1; + + gfxboot_data->vm.program.steps = 0; + + gfx_obj_ref_dec(gfxboot_data->vm.program.pstack); + + gfx_obj_ref_dec(gfxboot_data->vm.program.context); + gfxboot_data->vm.program.context = 0; + + gfxboot_data->vm.program.pstack = gfx_obj_array_new(0); + + if(!gfxboot_data->vm.program.pstack) { + GFX_ERROR(err_no_memory); + return 0; + } + + if(!gfx_is_code(program)) { + GFX_ERROR(err_invalid_code); + return 0; + } + + obj_id_t ctx_id = gfx_obj_context_new(t_ctx_func); + context_t *ctx = gfx_obj_context_ptr(ctx_id); + if(!ctx) { + GFX_ERROR(err_no_memory); + return 0; + } + + ctx->dict_id = gfx_obj_ref_inc(gfxboot_data->vm.program.dict); + ctx->code_id = gfx_obj_ref_inc(program); + + data_t *code = gfx_obj_mem_ptr(ctx->code_id); + + gfxboot_log("program loaded %s (%u bytes)\n", gfx_obj_id2str(program), code->size); + + gfxboot_data->vm.program.context = ctx_id; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned decode_raw_instr(uint8_t *data, decoded_instr_t *instr) +{ + unsigned inst_size = 1; + + unsigned type = data[0] & 0x0f; + + unsigned n = data[0] >> 4; + + instr->arg2 = 0; + instr->type = type; + + if(TYPE_EXPECTS_DATA(type)) { + unsigned len; + if(n >= 12) { + n -= 11; + len = gfx_decode_number(data + 1, n); + inst_size += n; + } + else { + len = n; + } + instr->arg1 = len; + instr->arg2 = data + inst_size; + inst_size += len; + } + else { + int64_t val; + if(n >= 8) { + n -= 7; + val = (int64_t) gfx_decode_number(data + 1, n); + inst_size += n; + // ints are signed, everything else is encoded as unsigned + if(type == t_int) { + // expand sign bit + val <<= 8 * (8 - n); + val >>= 8 * (8 - n); + } + } + else { + val = n; + } + instr->arg1 = val; + } + + return inst_size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// decoded arguments are: +// +// int64_t arg1, uint8_t[arg1] arg2 +// +// arg2 is optional and may be 0; if arg2 is not 0, arg1 is its length +// +int gfx_decode_instr(decoded_instr_t *instr) +{ + *instr = (decoded_instr_t) { }; + + if(gfxboot_data->vm.program.stop || gfxboot_data->vm.error.id) return 0; + + gfxboot_data->vm.program.steps++; + + obj_id_t ctx_id = gfxboot_data->vm.program.context; + if(!ctx_id) return 0; + + instr->ctx = gfx_obj_context_ptr(ctx_id); + if(!instr->ctx) { + GFX_ERROR(err_internal); + return 0; + } + + instr->code_id = instr->ctx->code_id; + + unsigned ip = instr->ctx->ip; + instr->ctx->current_ip = ip; + + obj_t *code_ptr = gfx_obj_ptr(instr->code_id); + + if(!code_ptr || code_ptr->base_type != OTYPE_MEM) { + GFX_ERROR(err_invalid_code); + return 0; + } + + data_t *mem = OBJ_DATA_FROM_PTR(code_ptr); + + unsigned size = mem->size; + uint8_t *data = mem->ptr; + + // at code end, do nothing + if(ip == size) return 0; + + if(ip + 1 > size) { // encoded instructions are at least 1 bytes + GFX_ERROR(err_invalid_code); + return 0; + } + + unsigned inst_size = decode_raw_instr(data + ip, instr); + + // for a cross reference, look it up and do the same again + if(instr->type == t_xref) { + // xref_ip may intentionally get negative + int xref_ip = ip - instr->arg1; + +#if 0 + if(gfxboot_data->vm.debug.trace.ip) { + gfxboot_log("IP: xref ip 0x%x\n", xref_ip); + } +#endif + + decode_raw_instr(data + xref_ip, instr); + } + + if(gfxboot_data->vm.debug.trace.ip) { + gfxboot_log("IP: #%u:0x%x, type %d, ", OBJ_ID2IDX(instr->ctx->code_id), ip, instr->type); + if(instr->arg2) { + gfxboot_log("%d[%u]\n", (int) (instr->arg2 - data), (unsigned) instr->arg1); + } + else { + gfxboot_log("%lld (0x%llx)\n", (long long) instr->arg1, (long long) instr->arg1); + } + } + + unsigned next_ip = ip + inst_size; + + if(next_ip > size) { + GFX_ERROR(err_invalid_code); + return 0; + } + + instr->ctx->ip = next_ip; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_run() +{ + uint64_t tsc_start = tsc(), tsc_last = tsc_start; + + gfxboot_data->vm.program.stop = 0; + + // gfxboot_log("running code\n"); + + decoded_instr_t instr; + + unsigned steps = gfxboot_data->vm.debug.steps; + unsigned steps_set = steps ? 1 : 0; + + for(; (!steps_set || steps) && gfx_decode_instr(&instr); steps--) { + switch(instr.type) { + case t_int: + case t_bool: + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(instr.arg1, instr.type), 0); + break; + + case t_nil: + gfx_obj_array_push(gfxboot_data->vm.program.pstack, 0, 0); + break; + + case t_string: + case t_ref: + case t_code: + gfx_obj_array_push( + gfxboot_data->vm.program.pstack, + gfx_obj_const_mem_nofree_new(instr.arg2, instr.arg1, instr.type, instr.code_id), + 0 + ); + break; + + case t_prim: + gfx_run_prim(instr.arg1); + break; + + case t_word: + { + data_t key = { .ptr = instr.arg2, .size = instr.arg1 }; + obj_id_pair_t pair = gfx_lookup_dict(&key); + if(!pair.id1) { + GFX_ERROR(err_invalid_code); + } + else { + gfx_exec_id(0, pair.id2, 0); + } + } + break; + + case t_get: + gfx_prim_get_x(& (data_t) { .ptr = instr.arg2, .size = instr.arg1 }); + break; + + case t_set: + { + obj_id_t key = gfx_obj_const_mem_nofree_new(instr.arg2, instr.arg1, t_ref, instr.code_id); + gfx_prim_put_x(key); + gfx_obj_ref_dec(key); + } + break; + + case t_comment: + // do nothing + break; + + default: + GFX_ERROR(err_invalid_code); + } + + gfx_debug_show_trace(); + + if(gfxboot_data->vm.debug.trace.time) { + uint64_t tmp = tsc(); + gfxboot_log("TIME: %llu\n", (unsigned long long) tmp - tsc_last); + tsc_last = tmp; + } + } + + gfxboot_data->vm.program.time += tsc() - tsc_start; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_pair_t gfx_lookup_dict(data_t *key) +{ + obj_id_pair_t pair = { }; + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + while(context) { + if( + context && + context->dict_id && + (pair = gfx_obj_hash_get(context->dict_id, key)).id1 + ) { + return pair; + } + context = gfx_obj_context_ptr(context->parent_id); + } + + return gfx_obj_hash_get(gfxboot_data->vm.program.dict, key); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_is_code(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM || !ptr->flags.ro) { + return 0; + } + + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + // either we know it's a code blob or we check for the magic + if( + ptr->sub_type == t_code || + (mem->size >= 8 && gfx_decode_number(mem->ptr, 8) == (GFXBOOT_MAGIC << 8) + 0x70 + t_comment) + ) { + return 1; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +area_t gfx_font_dim(obj_id_t font_id) +{ + area_t area = { }; + font_t *font; + + for(; (font = gfx_obj_font_ptr(font_id)); font_id = font->parent_id) { + if(font->width > area.width) area.width = font->width; + if(font->height > area.height) area.height = font->line_height; + } + + return area; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_image_open(obj_id_t image_file) +{ + data_t *mem = gfx_obj_mem_ptr(image_file); + + if(!mem || !mem->size) return 0; + + unsigned u = gfx_jpeg_getsize(mem->ptr); + + int width = u & 0xffff; + int height = (int) (u >> 16); + + obj_id_t image_id = gfx_obj_canvas_new(width, height); + canvas_t *canvas = gfx_obj_canvas_ptr(image_id); + + if(gfx_jpeg_decode(mem->ptr, (uint8_t *) &canvas->ptr, 0, canvas->width, 0, canvas->height, 32)) { + gfx_obj_ref_dec(image_id); + image_id = 0; + } + + return image_id; +} diff --git a/gfxboot.h b/gfxboot.h new file mode 100644 index 0000000..69518f3 --- /dev/null +++ b/gfxboot.h @@ -0,0 +1,538 @@ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#pragma GCC diagnostic ignored "-Wshift-negative-value" +#pragma GCC diagnostic ignored "-Wpointer-arith" +#pragma GCC diagnostic ignored "-Waddress-of-packed-member" + +// #define FULL_ERROR + +typedef __UINT8_TYPE__ uint8_t; +typedef __INT8_TYPE__ int8_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __INT16_TYPE__ int16_t; +typedef __UINT32_TYPE__ uint32_t; +typedef __INT32_TYPE__ int32_t; +typedef __UINT64_TYPE__ uint64_t; +typedef __INT64_TYPE__ int64_t; + +#if __LONG_WIDTH__ == 32 +#define INCLUDE_DIV64 1 +#else +#define INCLUDE_DIV64 0 +#endif + +#define MIN(x, y) ((x) < (y) ? (x) : (y)) +#define MAX(x, y) ((x) > (y) ? (x) : (y)) + +#define gfx_memset __builtin_memset +#define gfx_memcpy __builtin_memmove +#define gfx_memcmp __builtin_memcmp +#define gfx_strlen gfxboot_sys_strlen +#define gfx_strcmp gfxboot_sys_strcmp +#define gfx_strtol gfxboot_sys_strtol + +typedef uint32_t color_t; +typedef uint32_t obj_id_t; + +#define COLOR_BYTES ((int) sizeof (color_t)) +#define ALPHA_POS 24 +#define ALPHA_BITS 8 +#define RED_POS 16 +#define RED_BITS 8 +#define GREEN_POS 8 +#define GREEN_BITS 8 +#define BLUE_POS 0 +#define BLUE_BITS 8 +#define COLOR(a, r, g, b) (((unsigned) (a) << ALPHA_POS) + ((r) << RED_POS) + ((g) << GREEN_POS) + ((b) << BLUE_POS)) + +#define OBJ_ID_GEN_BITS 8 +#define OBJ_ID_GEN_POS (32 - OBJ_ID_GEN_BITS) +#define OBJ_ID_GEN_MASK ~((1 << OBJ_ID_GEN_POS) - 1) + +#define OBJ_TYPE_MASK ((1 << 8) - 1) + +#define OBJ_ID(id, gen) ((unsigned) id + (((unsigned) gen) << OBJ_ID_GEN_POS)) +#define OBJ_ID2GEN(id) ((unsigned) id >> OBJ_ID_GEN_POS) +#define OBJ_ID2IDX(id) ((unsigned) id & ~OBJ_ID_GEN_MASK) +#define OBJ_ID_ASSIGN(a, b) do { obj_id_t tmp = a; a = gfx_obj_ref_inc(b); gfx_obj_ref_dec(tmp); } while(0) + +#define OTYPE_NONE 0 // should be 0 +#define OTYPE_MEM 1 +#define OTYPE_OLIST 2 +#define OTYPE_FONT 3 +#define OTYPE_CANVAS 4 +#define OTYPE_ARRAY 5 +#define OTYPE_HASH 6 +#define OTYPE_CONTEXT 7 +#define OTYPE_NUM 8 +#define OTYPE_GSTATE 9 +#define OTYPE_INVALID 10 +#define OTYPE_ANY 11 + +// internal memory size of object with size n +#define OBJ_OLIST_SIZE(n) (sizeof (olist_t) + (n) * sizeof (obj_t)) +#define OBJ_FONT_SIZE() (sizeof (font_t)) +#define OBJ_CANVAS_SIZE(w, h) (sizeof (canvas_t) + (unsigned) (w) * (unsigned) (h) * sizeof *((canvas_t) {0}).ptr) +#define OBJ_ARRAY_SIZE(n) (sizeof (array_t) + (n) * sizeof *((array_t) {0}).ptr) +#define OBJ_HASH_SIZE(n) (sizeof (hash_t) + (n) * sizeof *((hash_t) {0}).ptr) +#define OBJ_CONTEXT_SIZE() (sizeof (context_t)) +#define OBJ_GSTATE_SIZE() (sizeof (gstate_t)) + +#define OBJ_DATA_FROM_PTR(p) (&(p)->data) +#define OBJ_MEM_FROM_PTR(p) ((p)->data.ptr) +#define OBJ_OLIST_FROM_PTR(p) ((olist_t *) (p)->data.ptr) +#define OBJ_FONT_FROM_PTR(p) ((font_t *) (p)->data.ptr) +#define OBJ_CANVAS_FROM_PTR(p) ((canvas_t *) (p)->data.ptr) +#define OBJ_ARRAY_FROM_PTR(p) ((array_t *) (p)->data.ptr) +#define OBJ_HASH_FROM_PTR(p) ((hash_t *) (p)->data.ptr) +#define OBJ_CONTEXT_FROM_PTR(p) ((context_t *) (p)->data.ptr) +#define OBJ_GSTATE_FROM_PTR(p) ((gstate_t *) (p)->data.ptr) +#define OBJ_VALUE_FROM_PTR(p) ((p)->data.value) + +#define ADD_AREA(a, b) (a).x += (b).x, (a).y += (b).y, (a).width += (b).width, (a).height += (b).height + +#if 0 +pserr_ok equ 0 +pserr_nocode equ 1 +pserr_invalid_opcode equ 2 +pserr_pstack_underflow equ 3 +pserr_pstack_overflow equ 4 +pserr_invalid_dict equ 7 +pserr_wrong_arg_types equ 8 +pserr_div_by_zero equ 9 +pserr_invalid_range equ 0bh +pserr_invalid_exit equ 0ch +pserr_invalid_image_size equ 0dh +pserr_no_memory equ 0eh +pserr_invalid_data equ 0fh +pserr_nop equ 10h +pserr_invalid_function equ 11h +pserr_invalid_dict_entry equ 200h +pserr_invalid_prim equ 201h +#endif + +#ifdef FULL_ERROR +#define GFX_ERROR(a) gfxboot_data->vm.error = (error_t) { .id = (a), .src_file = __FILE__, .src_line = __LINE__ } +#else +#define GFX_ERROR(a) gfxboot_data->vm.error.id = (a) +#endif + +// see gfx_error_msg() +typedef enum { + err_ok = 0, err_invalid_code, err_invalid_instruction, + err_no_array_start, err_no_hash_start, err_no_memory, + err_invalid_hash_key, err_stack_underflow, err_internal, + err_no_loop_context, err_invalid_range, err_invalid_data, + err_readonly, err_invalid_arguments, err_div_by_zero +} error_id_t; + +typedef struct { + error_id_t id; +#ifdef FULL_ERROR + const char *src_file; + int src_line; +#endif +} error_t; + +typedef struct { + unsigned inspect:1; + unsigned dump:1; + unsigned ref:1; + unsigned no_nl:1; + unsigned no_head:1; + unsigned max; +} dump_style_t; + +typedef struct { + uint32_t next; // offset to next header + uint32_t id; // 0 = free, otherwise used +} malloc_header_t; + +typedef struct { + const char *title; +} gfxboot_menu_t; + +typedef struct { + int pos, size; +} color_bits_t; + +typedef struct { + void *ptr; + obj_id_t id; + int width, height; + int bytes_per_line; + int bytes_per_pixel; + int bits_per_pixel; + color_bits_t red; + color_bits_t green; + color_bits_t blue; + color_bits_t res; +} fb_t; + +typedef struct { + int x, y; + int width, height; +} area_t; + +typedef struct { + int max_width, max_height; + int width, height; + color_t ptr[]; +} canvas_t; // __attribute__ ((packed)) + +typedef union { + struct { + void *ptr; + unsigned size; + obj_id_t ref_id; // ptr points into this object + }; + int64_t value; +} data_t; + +typedef struct { + data_t data; // either pointer+size or int value, see flags.data_is_ptr + uint32_t ref_cnt; // reference count + uint8_t gen; // generation + uint8_t base_type; // base type + uint8_t sub_type; // more detailed type, if != 0 + struct { + uint8_t data_is_ptr:1; // type of data element + uint8_t ro:1; // object is read-only + uint8_t nofree:1; // data.ptr is unmanaged and must not be freed + uint8_t fixed:1; // do not relocate + uint8_t utf8:1; // data is utf8 encoded + } flags; +} obj_t; + +typedef struct { + unsigned next; + unsigned max; + obj_t ptr[]; +} __attribute__ ((packed)) olist_t; + +typedef struct { + unsigned type; + obj_id_t parent_id; + obj_id_t data_id; + obj_id_t glyph_id; + int width, height; + int line_height; + int baseline; + unsigned glyphs; + unsigned glyph_size; // bitmap size per glyph in bytes + struct { + unsigned offset; + unsigned size; + } bitmap, unimap; +} font_t; + +typedef struct { + unsigned size; + unsigned max; + obj_id_t ptr[]; +} __attribute__ ((packed)) array_t; + +typedef struct key_value_s { + obj_id_t key; + obj_id_t value; +} key_value_t; + +typedef struct { + unsigned size; + unsigned max; + obj_id_t parent_id; + key_value_t ptr[]; +} __attribute__ ((packed)) hash_t; + +typedef struct { + unsigned type; + unsigned ip, current_ip; + obj_id_t parent_id; + obj_id_t code_id; + obj_id_t dict_id; + obj_id_t iterate_id; + int64_t index; + int64_t max; + int64_t inc; +} context_t; + +typedef struct { + area_t region; // drawing area, relative to screen (in pixel) + area_t pos; // drawing position (in x, y) and font char size (in width, height) + color_t color; // drawing color + color_t bg_color; // background color + obj_id_t canvas_id; + obj_id_t font_id; +} gstate_t; + +typedef struct { + context_t *ctx; + int64_t arg1; + uint8_t *arg2; + unsigned type; + obj_id_t code_id; +} decoded_instr_t; + +typedef struct { + obj_id_t id1, id2; +} obj_id_pair_t; + +typedef struct { + struct { + fb_t real; + obj_id_t virt_id; + } screen; + + struct { + obj_id_t gstate_id; // debug console gstate + } console; + + obj_id_t gstate_id; // normal gstate + + struct { + int nested; + int entry; + int size; + gfxboot_menu_t *entries; + struct { + int max; + int current; + } timeout; + } menu; + + struct { + data_t mem; // memory pool + struct { + olist_t *ptr; // ptr to object list + obj_id_t id; // id of object list + } olist; + obj_id_t gc_list; // list of objects to garbage collect + struct { + obj_id_t pstack; // program data stack + obj_id_t dict; // global dictionary + obj_id_t context; // current program context + unsigned stop:1; + uint64_t time; + uint64_t steps; + } program; + error_t error; + struct { + struct { + char buf[256]; + unsigned buf_pos; + unsigned show:1; + } console; + int log_level_serial; + int log_level_console; + unsigned show_pointer:1; + unsigned log_prompt:1; + unsigned steps; + struct { + unsigned ip:1; + unsigned pstack:1; + unsigned context:1; + unsigned gc:1; + unsigned time:1; + } trace; + } debug; + } vm; + + struct { + unsigned port; + } serial; +} gfxboot_data_t; + +typedef int (* dump_function_t)(obj_t *ptr, dump_style_t style); +typedef unsigned (* gc_function_t)(obj_t *ptr); +typedef int (* contains_function_t)(obj_t *ptr, obj_id_t id); +typedef unsigned (* iterate_function_t)(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +extern gfxboot_data_t *gfxboot_data; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf); +void gfxboot_sys_free(void *ptr); +unsigned long gfxboot_sys_strlen(const char *s); +int gfxboot_sys_strcmp(const char *s1, const char *s2); +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base); +void gfxboot_screen_update(area_t area); +int gfxboot_getkey(void); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +#define gfxboot_serial(ls, ...) gfxboot_printf((((ls) & 0xff) << 8) + 1, __VA_ARGS__) +#define gfxboot_console(lc, ...) gfxboot_printf((((lc) & 0xff) << 16) + 2, __VA_ARGS__) +#define gfxboot_log(...) gfxboot_printf(3, __VA_ARGS__) +#define gfxboot_debug(ls, lc, ...) gfxboot_printf((((lc) & 0xff) << 16) + (((ls) & 0xff) << 8) + 3, __VA_ARGS__) +int gfxboot_printf(int dst, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int gfxboot_asprintf(char **str, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) __attribute__ ((format (printf, 3, 4))); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_init(void); +int gfxboot_process_key(unsigned key); +void gfxboot_timeout(void); +void gfxboot_debug_command(char *str); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_read_le32(const void *p); +char *gfx_utf8_enc(unsigned uc); +int gfx_utf8_dec(char **s, unsigned *len); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_screen_update(area_t area); +void gfx_console_putc(unsigned c, int update_pos); +void gfx_console_puts(char *s); +void gfx_putc(gstate_t *gstate, unsigned c, int update_pos); +void gfx_puts(gstate_t *gstate, char *s, unsigned len); +area_t gfx_clip(area_t *area1, area_t *area2); +void gfx_blt(int mode, obj_id_t dst_id, area_t dst_area, obj_id_t src_id, area_t src_area); +int gfx_getpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t *color); +void gfx_putpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t color); +void gfx_line(gstate_t *gstate, canvas_t *canvas, int x0, int y0, int x1, int y1, color_t color); +void gfx_rect(gstate_t *gstate, int x, int y, int width, int height, color_t c); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_malloc_init(void); +void gfx_malloc_dump(dump_style_t style); +void *gfx_malloc(uint32_t size, uint32_t id); +void gfx_free(void *ptr); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_read_file(char *name); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_init(void); +void gfx_obj_dump(obj_id_t id, dump_style_t style); +char *gfx_obj_id2str(obj_id_t id); + +obj_id_t gfx_obj_new(unsigned type); +obj_id_t gfx_obj_alloc(unsigned type, uint32_t size); +obj_id_t gfx_obj_realloc(obj_id_t id, uint32_t size); + +obj_id_t gfx_obj_ref_inc(obj_id_t id); +void gfx_obj_ref_dec(obj_id_t id); +unsigned gfx_obj_ref_dec_delay_gc(obj_id_t id); +void gfx_obj_run_gc(void); +unsigned gfx_obj_iterate(obj_id_t id, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + +obj_t *gfx_obj_ptr_nocheck(obj_id_t id); +obj_t *gfx_obj_ptr(obj_id_t id); +contains_function_t gfx_obj_contains_function(unsigned type); + +obj_id_t gfx_obj_mem_new(uint32_t size); +data_t *gfx_obj_mem_ptr(obj_id_t id); +data_t *gfx_obj_mem_subtype_ptr(obj_id_t id, uint8_t subtype); +int gfx_obj_mem_get(obj_id_t mem_id, int pos); +obj_id_t gfx_obj_mem_set(obj_id_t mem_id, uint8_t val, int pos); +int gfx_obj_mem_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_mem_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +obj_id_t gfx_obj_const_mem_nofree_new(const uint8_t *str, unsigned len, uint8_t subtype, obj_id_t ref_id); +obj_id_t gfx_obj_asciiz_new(const char *str); +obj_id_t gfx_obj_mem_dup(obj_id_t id, unsigned extra_bytes); +int gfx_obj_mem_cmp(data_t *mem1, data_t *mem2); +void gfx_obj_mem_del(obj_id_t mem_id, int pos); +unsigned gfx_obj_mem_gc(obj_t *ptr); +int gfx_obj_mem_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_olist_new(unsigned max); +olist_t *gfx_obj_olist_ptr(obj_id_t id); +int gfx_obj_olist_dump(obj_t *ptr, dump_style_t style); + +obj_id_t gfx_obj_font_new(void); +font_t *gfx_obj_font_ptr(obj_id_t id); +int gfx_obj_font_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_font_gc(obj_t *ptr); +int gfx_obj_font_contains(obj_t *ptr, obj_id_t id); +obj_id_t gfx_obj_font_open(obj_id_t font_file); + +obj_id_t gfx_obj_canvas_new(int width, int height); +canvas_t *gfx_obj_canvas_ptr(obj_id_t id); +int gfx_obj_canvas_dump(obj_t *ptr, dump_style_t style); +int gfx_canvas_adjust_size(canvas_t *c, int width, int height); +int gfx_canvas_resize(obj_id_t canvas_id, int width, int height); + +obj_id_t gfx_obj_array_new(unsigned max); +array_t *gfx_obj_array_ptr(obj_id_t id); +unsigned gfx_obj_array_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +int gfx_obj_array_dump(obj_t *ptr, dump_style_t style); +obj_id_t gfx_obj_array_set(obj_id_t array_id, obj_id_t id, int pos, int do_ref_cnt); +obj_id_t gfx_obj_array_get(obj_id_t array_id, int pos); +obj_id_t gfx_obj_array_push(obj_id_t array_id, obj_id_t id, int do_ref_cnt); +obj_id_t gfx_obj_array_pop(obj_id_t array_id, int do_ref_cnt); +void gfx_obj_array_pop_n(unsigned n, obj_id_t array_id, int do_ref_cnt); +obj_id_t gfx_obj_array_add(obj_id_t array_id, obj_id_t id, int do_ref_cnt); +unsigned gfx_obj_array_gc(obj_t *ptr); +int gfx_obj_array_contains(obj_t *ptr, obj_id_t id); +void gfx_obj_array_del(obj_id_t array_id, int pos, int do_ref_cnt); + +obj_id_t gfx_obj_hash_new(unsigned max); +hash_t *gfx_obj_hash_ptr(obj_id_t id); +unsigned gfx_obj_hash_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +int gfx_obj_hash_dump(obj_t *ptr, dump_style_t style); +obj_id_t gfx_obj_hash_set(obj_id_t hash_id, obj_id_t key_id, obj_id_t value_id, int do_ref_cnt); +obj_id_pair_t gfx_obj_hash_get(obj_id_t hash_id, data_t *key); +void gfx_obj_hash_del(obj_id_t hash_id, obj_id_t key_id, int do_ref_cnt); +unsigned gfx_obj_hash_gc(obj_t *ptr); +int gfx_obj_hash_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_context_new(uint8_t sub_type); +context_t *gfx_obj_context_ptr(obj_id_t id); +int gfx_obj_context_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_context_gc(obj_t *ptr); +int gfx_obj_context_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_num_new(int64_t num, uint8_t subtype); +int64_t *gfx_obj_num_ptr(obj_id_t id); +int64_t *gfx_obj_num_subtype_ptr(obj_id_t id, uint8_t subtype); +int gfx_obj_num_dump(obj_t *ptr, dump_style_t style); + +obj_id_t gfx_obj_gstate_new(void); +gstate_t *gfx_obj_gstate_ptr(obj_id_t id); +int gfx_obj_gstate_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_gstate_gc(obj_t *ptr); +int gfx_obj_gstate_contains(obj_t *ptr, obj_id_t id); + +unsigned gfx_program_init(obj_id_t program); +int gfx_decode_instr(decoded_instr_t *code); +void gfx_program_run(void); +void gfx_program_debug(unsigned key); +void gfx_program_debug_on_off(unsigned state); +void gfx_program_process_key(unsigned key); +char *gfx_debug_get_ip(void); +void gfx_debug_cmd(char *str); +void gfx_debug_show_trace(void); +void gfx_vm_status_dump(void); +obj_id_pair_t gfx_lookup_dict(data_t *key); +int gfx_is_code(obj_id_t id); +area_t gfx_font_dim(obj_id_t font_id); +obj_id_t gfx_image_open(obj_id_t image_file); + +const char *gfx_error_msg(error_id_t id); +void gfx_show_error(void); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// jpeg +int gfx_jpeg_decode(uint8_t *jpeg, uint8_t *img, int x_0, int x_1, int y_0, int y_1, int color_bits); +unsigned gfx_jpeg_getsize(uint8_t *buf); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// gfxboot_prim.c +// +int gfx_setup_dict(void); +error_id_t gfx_run_prim(unsigned prim); +void gfx_exec_id(obj_id_t dict, obj_id_t id, int on_stack); +void gfx_prim_get_x(data_t *key); +void gfx_prim_put_x(obj_id_t id); diff --git a/gfxboot_array.c b/gfxboot_array.c new file mode 100644 index 0000000..6d1cfbb --- /dev/null +++ b/gfxboot_array.c @@ -0,0 +1,266 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// array + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_new(unsigned max) +{ + if(!max) max = 0x10; + + obj_id_t id = gfx_obj_alloc(OTYPE_ARRAY, OBJ_ARRAY_SIZE(max)); + array_t *a = gfx_obj_array_ptr(id); + + if(a) { + a->max = max; + a->size = 0; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +array_t *gfx_obj_array_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_ARRAY) return 0; + + return (array_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_array_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + array_t *a = ptr->data.ptr; + + if(ptr->data.size != OBJ_ARRAY_SIZE(a->max)) { + GFX_ERROR(err_internal); + return 0; + } + + if(*idx >= a->size) { + return 0; + } + + gfx_obj_ref_inc(*id1 = a->ptr[*idx]); + (*idx)++; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_array_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + array_t *a = ptr->data.ptr; + unsigned u; + obj_id_t id; + + if(ptr->data.size != OBJ_ARRAY_SIZE(a->max)) { + gfxboot_log("\n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("size %u, max %u", a->size, a->max); + + return 1; + } + + for(u = 0; u < a->size && (!style.max || u < style.max); u++) { + id = a->ptr[u]; + if(style.dump) gfxboot_log(" "); + gfxboot_log("[%2u] ", u); + gfx_obj_dump(id, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_set(obj_id_t array_id, obj_id_t id, int pos, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0) return 0; + + unsigned upos = (unsigned) pos; + + if(upos >= a->max) { + unsigned max = upos + (upos >> 3) + 0x10; + array_id = gfx_obj_realloc(array_id, OBJ_ARRAY_SIZE(max)); + if(!array_id) return 0; + a = gfx_obj_array_ptr(array_id); + if(!a) return 0; + a->max = max; + } + + if(upos >= a->size) { + unsigned u; + + // clear new entries + for(u = a->size; u <= upos; u++) a->ptr[u] = 0; + a->size = upos + 1; + } + + if(do_ref_cnt) { + gfx_obj_ref_inc(id); + gfx_obj_ref_dec(a->ptr[upos]); + } + a->ptr[upos] = id; + + return array_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_get(obj_id_t array_id, int pos) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0 || pos >= (int) a->size) return 0; + + return a->ptr[pos]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_array_del(obj_id_t array_id, int pos, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0 || pos >= (int) a->size) return; + + if(do_ref_cnt) { + gfx_obj_ref_dec(a->ptr[pos]); + } + + a->size--; + + if(a->size > (unsigned) pos) { + gfx_memcpy(&a->ptr[pos], &a->ptr[pos + 1], (sizeof *a->ptr) * (a->size - (unsigned) pos)); + } + + gfx_memset(&a->ptr[a->size], 0, sizeof *a->ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_push(obj_id_t array_id, obj_id_t id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + return gfx_obj_array_set(array_id, id, (int) a->size, do_ref_cnt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_pop(obj_id_t array_id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(a->size > 0) { + a->size--; + obj_id_t id = a->ptr[a->size]; + // do not leave invalid values behind + a->ptr[a->size] = 0; + if(do_ref_cnt) gfx_obj_ref_dec(id); + return id; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_array_pop_n(unsigned n, obj_id_t array_id, int do_ref_cnt) +{ + unsigned u; + + for(u = 0; u < n; u++) { + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_add(obj_id_t array_id, obj_id_t id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + unsigned idx; + + for(idx = 0; idx < a->size; idx++) { + if(a->ptr[idx] == id) return array_id; + } + + return gfx_obj_array_set(array_id, id, (int) a->size, do_ref_cnt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_array_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + array_t *array = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx, more_gc = 0; + + if(array && data_size == OBJ_ARRAY_SIZE(array->max)) { + for(idx = 0; idx < array->size; idx++) { + more_gc += gfx_obj_ref_dec_delay_gc(array->ptr[idx]); + } + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_array_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + array_t *array = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx; + + if(array && data_size == OBJ_ARRAY_SIZE(array->max)) { + for(idx = 0; idx < array->size; idx++) { + if(id == array->ptr[idx]) return 1; + } + } + + return 0; +} diff --git a/gfxboot_canvas.c b/gfxboot_canvas.c new file mode 100644 index 0000000..9c69481 --- /dev/null +++ b/gfxboot_canvas.c @@ -0,0 +1,152 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// canvas + +static char gfx_canvas_pixel2char(canvas_t *c, int x_blk, int y_blk, int x, int y); +static uint32_t gfx_canvas_chksum(canvas_t *c); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_canvas_new(int width, int height) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_CANVAS, OBJ_CANVAS_SIZE(width, height)); + canvas_t *c = gfx_obj_canvas_ptr(id); + + if(c) { + c->max_width = c->width = width; + c->max_height = c->height = height; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +canvas_t *gfx_obj_canvas_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_CANVAS) return 0; + + return (canvas_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_canvas_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + canvas_t *c = ptr->data.ptr; + unsigned len = ptr->data.size; + int w, w_max, h, h_max, x_blk, y_blk; + + if(len < OBJ_CANVAS_SIZE(c->width, c->height)) { + gfxboot_log(" \n"); + + return 1; + } + + len -= sizeof (canvas_t); + + x_blk = (c->width + 79) / 80; + if(!x_blk) x_blk = 1; + w_max = c->width / x_blk; + + y_blk = (c->height + 19) / 20; + if(!y_blk) y_blk = 1; + h_max = c->height / y_blk; + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log( + "size %dx%d, max %dx%d, unit %dx%d, chk 0x%08x", + c->width, c->height, c->max_width, c->max_height, x_blk, y_blk, gfx_canvas_chksum(c) + ); + + return 1; + } + + if(style.dump && len) { + for(h = 0; h < h_max; h++) { + gfxboot_log(" |"); + for(w = 0; w < w_max; w++) { + gfxboot_log("%c", gfx_canvas_pixel2char(c, x_blk, y_blk, w, h)); + } + gfxboot_log("|\n"); + } + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char gfx_canvas_pixel2char(canvas_t *c, int x_blk, int y_blk, int x, int y) +{ + const char syms[] = " .,:+ox*%#O@"; // symbols for brightness + color_t col, *cp = (color_t *) ((uint8_t *) c + sizeof (canvas_t)); + int i, j; + unsigned val = 0; + + x *= x_blk; + y *= y_blk; + + cp += x + y * c->width; + + for(j = 0; j < y_blk; j++, cp += c->width) { + for(i = 0; i < x_blk; i++) { + col = cp[i]; + val += (col & 0xff) + ((col >> 8) & 0xff) + ((col >> 16) & 0xff); + } + } + + val /= (unsigned) (x_blk * y_blk * 3 * 255) / (sizeof syms); // yes, size + 1 !!! + if(val > sizeof syms - 2) val = sizeof syms - 2; + + return syms[val]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_canvas_adjust_size(canvas_t *c, int width, int height) +{ + if(c->max_width * c->max_height < width * height) return 0; + + c->width = width; + c->height = height; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_canvas_resize(obj_id_t canvas_id, int width, int height) +{ + canvas_t *c = gfx_obj_canvas_ptr(canvas_id); + + if(!c) return 0; + + if(c->width == width && c->height == height) return 1; + + return gfx_obj_realloc(canvas_id, OBJ_CANVAS_SIZE(width, height)) ? 1 : 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_canvas_chksum(canvas_t *c) +{ + unsigned u, len = (unsigned) c->width * (unsigned) c->height; + uint32_t sum = 0, a = 0; + + for(u = 0; u < len; u++) { + a = a * 73 + 19; + sum += a ^ c->ptr[u]; + } + + return sum; +} diff --git a/gfxboot_context.c b/gfxboot_context.c new file mode 100644 index 0000000..bcb80a6 --- /dev/null +++ b/gfxboot_context.c @@ -0,0 +1,127 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// context + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_context_new(uint8_t sub_type) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_CONTEXT, OBJ_CONTEXT_SIZE()); + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + ptr->sub_type = sub_type; + ((context_t *) ptr->data.ptr)->type = sub_type; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +context_t *gfx_obj_context_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_CONTEXT) return 0; + + return (context_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_context_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + context_t *context = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_CONTEXT_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("code %s, ip 0x%x (0x%x)", gfx_obj_id2str(context->code_id), context->ip, context->current_ip); + + if(context->type == t_ctx_repeat) { + gfxboot_log(", index %lld", (long long) context->index); + } + else if(context->type == t_ctx_for) { + gfxboot_log( + ", index %lld, inc %lld, max %lld", + (long long) context->index, + (long long) context->inc, + (long long) context->max + ); + } + else if(context->type == t_ctx_forall) { + gfxboot_log( + ", index %lld, iterate %s", + (long long) context->index, + gfx_obj_id2str(context->iterate_id) + ); + } + + if(context->dict_id) gfxboot_log(", dict %s", gfx_obj_id2str(context->dict_id)); + + return 1; + } + + if(style.dump) { + gfxboot_log(" type %u, ip 0x%x (0x%x)\n", context->type, context->ip, context->current_ip); + gfxboot_log(" code %s\n", gfx_obj_id2str(context->code_id)); + gfxboot_log(" parent %s\n", gfx_obj_id2str(context->parent_id)); + gfxboot_log(" dict %s\n", gfx_obj_id2str(context->dict_id)); + gfxboot_log(" iterate %s\n", gfx_obj_id2str(context->iterate_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_context_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + context_t *context = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(context && data_size == OBJ_CONTEXT_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(context->parent_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->code_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->dict_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->iterate_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_context_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + context_t *context = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(context && data_size == OBJ_CONTEXT_SIZE()) { + if( + id == context->parent_id || + id == context->code_id || + id == context->dict_id || + id == context->iterate_id + ) return 1; + } + + return 0; +} diff --git a/gfxboot_debug.c b/gfxboot_debug.c new file mode 100644 index 0000000..deab6df --- /dev/null +++ b/gfxboot_debug.c @@ -0,0 +1,820 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static void gfx_program_debug_putc(unsigned c, unsigned cursor); +static void gfx_status_dump(void); +static void gfx_stack_dump(dump_style_t style); +static void gfx_bt_dump(dump_style_t style); + +static int is_num(char *str); + +static void debug_cmd_dump(int argc, char **argv); +static void debug_cmd_log(int argc, char **argv); +static void debug_cmd_hex(int argc, char **argv); +static void debug_cmd_find(int argc, char **argv); +static void debug_cmd_run(int argc, char **argv); +static void debug_cmd_set(int argc, char **argv); + +static char *skip_space(char *str); +static char *skip_nonspace(char *str); + +static struct { + char *name; + void (* function)(int argc, char **argv); +} debug_cmds[] = { + { "d", debug_cmd_dump }, + { "dump", debug_cmd_dump }, + { "find", debug_cmd_find }, + { "hex", debug_cmd_hex }, + { "i", debug_cmd_dump }, + { "inspect", debug_cmd_dump }, + { "log", debug_cmd_log }, + { "p", debug_cmd_dump }, + { "print", debug_cmd_dump }, + { "r", debug_cmd_run }, + { "run", debug_cmd_run }, + { "set", debug_cmd_set }, + { "t", debug_cmd_run }, + { "trace", debug_cmd_run }, +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// debug functions + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_debug_get_ip() +{ + static char buf[64]; + unsigned code_id = 0; + unsigned ip = 0; + + context_t *code_ctx = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(code_ctx) { + code_id = OBJ_ID2IDX(code_ctx->code_id); + ip = gfxboot_data->vm.error.id ? code_ctx->current_ip : code_ctx->ip; + } + + gfxboot_snprintf(buf, sizeof buf, "#%u:0x%x", code_id, ip); + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_debug_cmd(char *str) +{ + char *argv[16] = { }; + int i, argc = 0; + int err = 0; + + if(gfxboot_data->vm.debug.log_prompt) gfxboot_log("%s>%s\n", gfx_debug_get_ip(), str); + + // log comment + if(str[0] == '#' && str[1] == ' ') { + gfxboot_log("%s\n", str); + return; + } + + while(argc < (int) (sizeof argv / sizeof *argv) - 1) { + str = skip_space(str); + if(!*str) break; + argv[argc++] = str; + str = skip_nonspace(str); + if(*str) *str++ = 0; + } + + if(!argv[0]) return; + + for(i = 0; i < (int) (sizeof debug_cmds / sizeof *debug_cmds); i++) { + if(!gfx_strcmp(argv[0], debug_cmds[i].name)) { + debug_cmds[i].function(argc, argv); + break; + } + } + + if(i != sizeof debug_cmds / sizeof *debug_cmds) return; + + for(i = 0; i < argc; i++) { + char *s = 0; + char *arg = argv[i]; + unsigned arg_len = gfx_strlen(arg); + unsigned is_id = 0; + + if(arg[0] == '#') { + is_id = 1; + arg++; + } + + long val = gfx_strtol(arg, &s, 0); + + if(!gfx_strcmp(arg, "nil")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, 0, 0); + } + else if(!gfx_strcmp(arg, "true")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(1, t_bool), 0); + } + else if(!gfx_strcmp(arg, "false")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(0, t_bool), 0); + } + else if(s && !*s) { + if(is_id) { + obj_id_t id = 0; + obj_t *ptr = gfx_obj_ptr_nocheck((unsigned) val); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(val), ptr->gen); + } + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 1); + } + else { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(val, t_int), 0); + } + } + else if(*arg == '"') { + if(arg_len >= 2 && arg[arg_len - 1] == '"') arg[--arg_len] = 0; + arg++; + arg_len--; + obj_id_t id = gfx_obj_mem_new(arg_len); + obj_t *ptr = gfx_obj_ptr(id); + if(ptr) { + ptr->sub_type = t_string; + gfx_memcpy(OBJ_MEM_FROM_PTR(ptr), arg, arg_len); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } + } + else if(*argv[i] == '/') { + arg++; + arg_len--; + obj_id_t id = gfx_obj_mem_new(arg_len); + obj_t *ptr = gfx_obj_ptr(id); + if(ptr) { + ptr->sub_type = t_ref; + gfx_memcpy(OBJ_MEM_FROM_PTR(ptr), arg, arg_len); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } + } + else { + data_t key = { .ptr = arg, .size = arg_len }; + obj_id_t id = gfx_lookup_dict(&key).id2; + if(id) { + gfxboot_log("%s -> %s\n", arg, gfx_obj_id2str(id)); + gfx_exec_id(0, id, 0); + } + else { + gfxboot_log("unknown command: %s\n", arg); + err = 1; + } + } + } + + if(!err) { + gfx_debug_show_trace(); + gfx_show_error(); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_debug_show_trace() +{ + if(gfxboot_data->vm.debug.trace.context) { + gfx_bt_dump((dump_style_t) {}); + } + + if(gfxboot_data->vm.debug.trace.pstack) { + gfx_stack_dump((dump_style_t) {}); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug_on_off(unsigned state) +{ + if(gfxboot_data->vm.debug.console.show == state) return; + + gfxboot_data->vm.debug.console.show = state; + + if(gfxboot_data->vm.debug.console.show && state < 2) { + // turn on minimal logging + if(gfxboot_data->vm.debug.log_level_console < 0) { + gfxboot_data->vm.debug.log_level_console = 0; + } + } + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + gfx_rect( + gstate, + 0, + gstate->region.height - gstate->pos.height, + gstate->region.width, + gstate->pos.height, + gstate->bg_color + ); + + gfxboot_data->vm.debug.console.buf_pos = 0; + gfxboot_data->vm.debug.console.buf[0] = 0; + + gstate->pos.x = 0; + gstate->pos.y = gstate->region.height - gstate->pos.height; + + if(gfxboot_data->vm.debug.console.show) { + char buf[64]; + + gfxboot_snprintf(buf, sizeof buf, "%s>", gfx_debug_get_ip()); + + gfx_console_puts(buf); + + gfx_console_putc('_', 0); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug_putc(unsigned c, unsigned cursor) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + if(c) gfx_console_putc(c, 1); + + if(cursor) gfx_console_putc(cursor, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug(unsigned key) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + unsigned pos = gfxboot_data->vm.debug.console.buf_pos; + + if(key == 0x04) { // ^D + gfx_program_debug_on_off(0); + return; + } + + if(key == 0x0d) { + gfx_program_debug_putc(' ', 0); + gfx_program_debug_putc(key, 0); + gfxboot_data->vm.debug.console.buf[pos] = 0; + gfx_debug_cmd(gfxboot_data->vm.debug.console.buf); + gfx_program_debug_on_off(3); + return; + } + + if(key == 0x08) { + if(!pos) return; + pos--; + gfx_program_debug_putc(key, 0); + key = 0; + } + + if(key && key < ' ') return; + + if( + !gstate || + pos >= sizeof gfxboot_data->vm.debug.console.buf - 1 || + gstate->pos.x >= gstate->region.width - gstate->pos.width + ) { + return; + } + + gfx_program_debug_putc(key, '_'); + + if(key) { + // FIXME: unicode chars! + gfxboot_data->vm.debug.console.buf[pos++] = key; + } + + gfxboot_data->vm.debug.console.buf_pos = pos; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_process_key(unsigned key) +{ + gfxboot_debug(2, 2, "gfx_program_process_key: 0x%x\n", key); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_vm_status_dump() +{ + int i; + + gfxboot_log("arch bits = %d, gfxboot_data = %p\n", (int) sizeof (void *) * 8, gfxboot_data); + + gfxboot_log( + "physical screen:\n fb = %p, size = %d x %d (+%d)\n pixel bytes = %d, bits = %d\n red = %d +%d, green = %d +%d, blue = %d +%d, reserved = %d +%d\n", + gfxboot_data->screen.real.ptr, + gfxboot_data->screen.real.width, + gfxboot_data->screen.real.height, + gfxboot_data->screen.real.bytes_per_line, + gfxboot_data->screen.real.bytes_per_pixel, + gfxboot_data->screen.real.bits_per_pixel, + gfxboot_data->screen.real.red.size, + gfxboot_data->screen.real.red.pos, + gfxboot_data->screen.real.green.size, + gfxboot_data->screen.real.green.pos, + gfxboot_data->screen.real.blue.size, + gfxboot_data->screen.real.blue.pos, + gfxboot_data->screen.real.res.size, + gfxboot_data->screen.real.res.pos + ); + + gfxboot_log("virtual screen:\n id = %s\n", gfx_obj_id2str(gfxboot_data->screen.virt_id)); + + canvas_t *c = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + + if(c) { + gfxboot_log( + " fb = %p, size = %d x %d (+%d)\n pixel bytes = %d, bits = %d\n red = %d +%d, green = %d +%d, blue = %d +%d, alpha = %d +%d\n", + c->ptr, c->width, c->height, c->width * COLOR_BYTES, + COLOR_BYTES, COLOR_BYTES * 8, + RED_BITS, RED_POS, + GREEN_BITS, GREEN_POS, + BLUE_BITS, BLUE_POS, + ALPHA_BITS, ALPHA_POS + ); + } + + gfxboot_log( + "menu\n default = %d, nested = %d\n size = %d\n", + gfxboot_data->menu.entry, + gfxboot_data->menu.nested, + gfxboot_data->menu.size + ); + + for(i = 0; i < gfxboot_data->menu.size; i++) { + gfxboot_log(" %d: title = \"%s\"\n", i, gfxboot_data->menu.entries[i].title); + } + + gfxboot_log( + "vm\n size = %d, ptr = %p\n", + gfxboot_data->vm.mem.size, + gfxboot_data->vm.mem.ptr + ); + + gfxboot_log( + "debug\n log console = %d, log serial = %d, pointer = %s, prompt = %s\n trace =%s%s%s%s%s\n", + gfxboot_data->vm.debug.log_level_console, + gfxboot_data->vm.debug.log_level_serial, + gfxboot_data->vm.debug.show_pointer ? "on" : "off", + gfxboot_data->vm.debug.log_prompt ? "on" : "off", + gfxboot_data->vm.debug.trace.ip ? " ip" : "", + gfxboot_data->vm.debug.trace.pstack ? " stack" : "", + gfxboot_data->vm.debug.trace.context ? " context" : "", + gfxboot_data->vm.debug.trace.gc ? " gc" : "", + gfxboot_data->vm.debug.trace.time ? " time" : "" + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_status_dump() +{ + gstate_t *console_gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + gstate_t *gfx_gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfxboot_log("graphics screen:\n"); + if(gfx_gstate) { + gfxboot_log(" gstate = "); + gfx_obj_dump(gfxboot_data->gstate_id, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" pos = %dx%d, color #%08x, bg_color #%08x\n", + gfx_gstate->pos.x, gfx_gstate->pos.y, + gfx_gstate->color, gfx_gstate->bg_color + ); + gfxboot_log(" font = "); + gfx_obj_dump(gfx_gstate->font_id, (dump_style_t) { .inspect = 1 }); + } + + gfxboot_log("text console:\n"); + if(console_gstate) { + gfxboot_log(" gstate = "); + gfx_obj_dump(gfxboot_data->console.gstate_id, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" pos = %dx%d, color #%08x, bg_color #%08x\n", + console_gstate->pos.x, console_gstate->pos.y, + console_gstate->color, console_gstate->bg_color + ); + gfxboot_log(" font = "); + gfx_obj_dump(console_gstate->font_id, (dump_style_t) { .inspect = 1 }); + } + + gfxboot_log("garbage collector:\n"); + gfxboot_log(" list = "); + gfx_obj_dump(gfxboot_data->vm.gc_list, (dump_style_t) { .inspect = 1 }); + + gfxboot_log("program:\n"); + gfxboot_log( + " ip = %s\n", + gfx_debug_get_ip() + ); + gfxboot_log(" global dict = "); + gfx_obj_dump(gfxboot_data->vm.program.dict, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" stack = "); + gfx_obj_dump(gfxboot_data->vm.program.pstack, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" context = "); + gfx_obj_dump(gfxboot_data->vm.program.context, (dump_style_t) { .inspect = 1 }); +#ifdef FULL_ERROR + gfxboot_log( + " error %d (%s), src = %s:%d\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfxboot_data->vm.error.src_file, + gfxboot_data->vm.error.src_line + ); +#else + gfxboot_log( + " error %d (%s)\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id) + ); +#endif + + uint64_t avg = gfxboot_data->vm.program.steps ? gfxboot_data->vm.program.time / gfxboot_data->vm.program.steps : 0; + gfxboot_log( + " time = %llu, steps = %llu, avg = %llu/step\n", + (unsigned long long) gfxboot_data->vm.program.time, + (unsigned long long) gfxboot_data->vm.program.steps, + (unsigned long long) avg + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_stack_dump(dump_style_t style) +{ + unsigned u; + obj_id_t stack_id = gfxboot_data->vm.program.pstack; + + gfxboot_log("== stack (%s) ==\n", gfx_obj_id2str(stack_id)); + + array_t *stack = gfx_obj_array_ptr(stack_id); + + if(!stack) return; + + for(u = 0; u < stack->size && (!style.max || u < style.max); u++) { + gfxboot_log(" [%u] ", u); + gfx_obj_dump(stack->ptr[stack->size - u - 1], (dump_style_t) { .inspect = 1 }); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_bt_dump(dump_style_t style) +{ + unsigned u = 0; + obj_id_t context_id = gfxboot_data->vm.program.context; + context_t *context; + + gfxboot_log("== backtrace ==\n"); + + while((!style.max || u < style.max) && (context = gfx_obj_context_ptr(context_id))) { + gfxboot_log(" [%u] ", u); + gfx_obj_dump(context_id, (dump_style_t) { .inspect = 1 }); + u++; + context_id = context->parent_id; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_dump(int argc, char **argv) +{ + dump_style_t style = { }; + + if(!argv[1]) return; + + if(!gfx_strcmp(argv[0], "i")) style.inspect =1; + if(!gfx_strcmp(argv[0], "d")) style.dump = 1; + + if(*argv[1] == '*') { + style.ref = 1; + argv[1]++; + } + + if(*argv[1] == '#') argv[1]++; + + if(argv[2]) { + style.max = (unsigned) gfx_strtol(argv[2], 0, 0); + } + + if(!gfx_strcmp(argv[1], "st")) { + gfx_status_dump(); + } + else if(!gfx_strcmp(argv[1], "vm")) { + gfx_vm_status_dump(); + } + else if(!gfx_strcmp(argv[1], "mem")) { + gfx_malloc_dump(style); + } + else if(!gfx_strcmp(argv[1], "stack")) { + gfx_stack_dump(style); + } + else if(!gfx_strcmp(argv[1], "bt")) { + gfx_bt_dump(style); + } + else { + obj_id_t id = 0; + int show_id = 1; + char *s = 0; + + if(!gfx_strcmp(argv[1], "stack")) { + id = gfxboot_data->vm.program.pstack; + } + else if(!gfx_strcmp(argv[1], "context")) { + id = gfxboot_data->vm.program.context; + } + else if(!gfx_strcmp(argv[1], "dict")) { + id = gfxboot_data->vm.program.dict; + } + else if(!gfx_strcmp(argv[1], "gc")) { + id = gfxboot_data->vm.gc_list; + } + else if(!gfx_strcmp(argv[1], "screen")) { + id = gfxboot_data->screen.virt_id; + } + else if(!gfx_strcmp(argv[1], "gstate")) { + id = gfxboot_data->gstate_id; + } + else if(!gfx_strcmp(argv[1], "consolegstate")) { + id = gfxboot_data->console.gstate_id; + } + else if(!gfx_strcmp(argv[1], "ip")) { + gfxboot_log("ip = %s\n", gfx_debug_get_ip()); + show_id = 0; + } + else if(!gfx_strcmp(argv[1], "err")) { + gfx_show_error(); + show_id = 0; + } + else { + unsigned idx = (unsigned) gfx_strtol(argv[1], &s, 0); + if(*s) return; + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(idx), ptr->gen); + } + else { + show_id = 0; + } + } + + if(show_id) gfx_obj_dump(id, style); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_hex(int argc, char **argv) +{ + dump_style_t style = { .dump = 1 }; + int x = 0; + unsigned len = 0; + obj_t tmp = { }; + + if(!argv[1]) return; + + if(*argv[1] == '*') { + x = 1; + argv[1]++; + } + + if(*argv[1] == '#') argv[1]++; + + if(argv[2]) { + len = (unsigned) gfx_strtol(argv[2], 0, 0); + } + + char *s = 0; + obj_id_t idx = (obj_id_t) gfx_strtol(argv[1], &s, 0); + + if(!s || !*s) { + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(ptr) { + if(x) { + tmp.data.ptr = ptr; + tmp.data.size = sizeof *ptr; + } + else { + if(ptr->flags.data_is_ptr) { + tmp.data.ptr = ptr->data.ptr; + tmp.data.size = ptr->data.size; + } + else { + tmp.data.ptr = &ptr->data.value; + tmp.data.size = 8; + } + } + if(len) tmp.data.size = len; + gfx_obj_mem_dump(&tmp, style); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int is_num(char *str) +{ + return str && *str >= '0' && *str <= '9'; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_log(int argc, char **argv) +{ + argc--; + argv++; + + while(*argv) { + if(!gfx_strcmp(*argv, "serial")) { + gfxboot_data->vm.debug.log_level_serial = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 0; + } + else if(!gfx_strcmp(*argv, "console")) { + gfxboot_data->vm.debug.log_level_console = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 0; + } + else if(!gfx_strcmp(*argv, "pointer")) { + gfxboot_data->vm.debug.show_pointer = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "prompt")) { + gfxboot_data->vm.debug.log_prompt = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "ip")) { + gfxboot_data->vm.debug.trace.ip = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "stack")) { + gfxboot_data->vm.debug.trace.pstack = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "context")) { + gfxboot_data->vm.debug.trace.context = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "gc")) { + gfxboot_data->vm.debug.trace.gc = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "time")) { + gfxboot_data->vm.debug.trace.time = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "all")) { + gfxboot_data->vm.debug.trace.pstack = + gfxboot_data->vm.debug.trace.context = + gfxboot_data->vm.debug.trace.ip = + gfxboot_data->vm.debug.trace.gc = + gfxboot_data->vm.debug.trace.time = + gfxboot_data->vm.debug.log_prompt = + is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + + argv++; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_run(int argc, char **argv) +{ + unsigned steps = 0; + + if(*argv[0] == 't') steps = 1; + + if(argv[1]) steps = (unsigned) gfx_strtol(argv[1], 0, 0); + + gfxboot_data->vm.debug.steps = steps; + + gfx_program_run(); + + gfx_show_error(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_find(int argc, char **argv) +{ + if(argc < 2) return; + + uint32_t idx = (uint32_t) gfx_strtol(argv[1], 0, 0); + if(!idx) return; + + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(!ptr) return; + + obj_id_t id = OBJ_ID(idx, ptr->gen); + + ptr = gfx_obj_ptr(OBJ_ID(0, 1)); + if(!ptr) return; + + olist_t *olist = ptr->data.ptr; + if(ptr->data.size != OBJ_OLIST_SIZE(olist->max)) { + return; + } + + unsigned u; + + for(u = 0; u < olist->max; u++) { + ptr = olist->ptr + u; + if(gfx_obj_contains_function(ptr->base_type)(ptr, id)) { + gfxboot_log("%s\n", gfx_obj_id2str(OBJ_ID(u, ptr->gen))); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_set(int argc, char **argv) +{ + if(argc < 3) return; + + argc--; + argv++; + + char *s = 0; + unsigned val = (unsigned) gfx_strtol(argv[1], &s, 0); + + if(*s) return; + + obj_id_t id = 0; + + if(val) { + obj_t *ptr = gfx_obj_ptr_nocheck(val); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(val), ptr->gen); + } + } + + if(!gfx_strcmp(argv[0], "stack")) { + obj_id_t old = gfxboot_data->vm.program.pstack; + gfxboot_data->vm.program.pstack = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "context")) { + obj_id_t old = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "dict")) { + obj_id_t old = gfxboot_data->vm.program.dict; + gfxboot_data->vm.program.dict = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "gc")) { + obj_id_t old = gfxboot_data->vm.gc_list; + gfxboot_data->vm.gc_list = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "screen")) { + obj_id_t old = gfxboot_data->screen.virt_id; + gfxboot_data->screen.virt_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "gstate")) { + obj_id_t old = gfxboot_data->gstate_id; + gfxboot_data->gstate_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "consolegstate")) { + obj_id_t old = gfxboot_data->console.gstate_id; + gfxboot_data->console.gstate_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "ip")) { + context_t *code_ctx = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(code_ctx) { + code_ctx->ip = val; + } + gfxboot_log("ip = %s\n", gfx_debug_get_ip()); + } + else if(!gfx_strcmp(argv[0], "err")) { + gfxboot_data->vm.error.id = val; + gfx_show_error(); + } +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *skip_space(char *str) +{ + while(*str == ' ' || *str == '\t' || *str == '\r' || *str == '\n') str++; + + return str; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *skip_nonspace(char *str) +{ + if(str[0] == '"') { + str++; + while(*str != 0 && *str != '"') str++; + if(*str == '"') str++; + } + else { + while(*str && !(*str == ' ' || *str == '\t' || *str == '\r' || *str == '\n')) str++; + } + + return str; +} diff --git a/gfxboot_draw.c b/gfxboot_draw.c new file mode 100644 index 0000000..3925ed9 --- /dev/null +++ b/gfxboot_draw.c @@ -0,0 +1,766 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// drawing functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static obj_id_t gfx_font_render_glyph(gstate_t *gstate, area_t *geo, unsigned c); +static obj_id_t gfx_font_render_font1_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c); +static obj_id_t gfx_font_render_font2_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c); +static unsigned read_unsigned_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits); +static int read_signed_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits); + +static color_t gfx_color_merge(color_t dst, color_t src); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_screen_update(area_t area) +{ + int i, j; + uint8_t *r8, *rc8; + color_t c; + uint32_t rc; + uint32_t rm, gm, bm; + int rs, gs, bs; + int rp, gp, bp; + int rsize; + + canvas_t *virt_fb = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + if(!virt_fb) return; + + color_t *pixel = virt_fb->ptr; + + rm = (1u << gfxboot_data->screen.real.red.size) - 1; + gm = (1u << gfxboot_data->screen.real.green.size) - 1; + bm = (1u << gfxboot_data->screen.real.blue.size) - 1; + + rs = 24 - gfxboot_data->screen.real.red.size; + gs = 16 - gfxboot_data->screen.real.green.size; + bs = 8 - gfxboot_data->screen.real.blue.size; + + rp = gfxboot_data->screen.real.red.pos; + gp = gfxboot_data->screen.real.green.pos; + bp = gfxboot_data->screen.real.blue.pos; + + rsize = gfxboot_data->screen.real.bytes_per_pixel; + +#if 0 + gfxboot_log( + "rm = 0x%02x, gm = 0x%02x, bm = 0x%02x, rs = %d, gs = %d, bs = %d, rp = %d, gp = %d, bp = %d\n", + rm, gm, bm, rs, gs, bs, rp, gp, bp + ); +#endif + + r8 = (uint8_t *) gfxboot_data->screen.real.ptr + + area.y * gfxboot_data->screen.real.bytes_per_line + + area.x * gfxboot_data->screen.real.bytes_per_pixel; + + pixel += area.y * virt_fb->width + area.x; + + for(j = 0; j < area.height; j++, r8 += gfxboot_data->screen.real.bytes_per_line, pixel += virt_fb->width) { + for(rc8 = r8, i = 0; i < area.width; i++) { + c = pixel[i]; + rc = (((c >> rs) & rm) << rp) + (((c >> gs) & gm) << gp) + (((c >> bs) & bm) << bp); + switch(rsize) { + case 4: + *rc8++ = rc; + rc >>= 8; + case 3: + *rc8++ = rc; + rc >>= 8; + case 2: + *rc8++ = rc; + rc >>= 8; + case 1: + *rc8++ = rc; + rc >>= 8; + } + } + } + + gfxboot_screen_update(area); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_glyph(gstate_t *gstate, area_t *geo, unsigned c) +{ + font_t *font; + obj_id_t font_id, glyph_id = 0; + + while(1) { + for(font_id = gstate->font_id; (font = gfx_obj_font_ptr(font_id)); font_id = font->parent_id) { + switch(font->type) { + case 1: + glyph_id = gfx_font_render_font1_glyph(gstate, font, geo, c); + break; + + case 2: + glyph_id = gfx_font_render_font2_glyph(gstate, font, geo, c); + break; + } + if(glyph_id) return glyph_id; + } + + if(c == 0xfffd) return 0; + + c = 0xfffd; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_font1_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c) +{ + data_t *data = gfx_obj_mem_ptr(font->data_id); + if(!data) return 0; + + char *uni = data->ptr + font->unimap.offset; + char *uni_end = uni + font->unimap.size; + + int i, j; + uint8_t *bitmap = 0; + unsigned uni_len = font->unimap.size; + unsigned idx; + + for(idx = 0; uni < uni_end; ) { + i = gfx_utf8_dec(&uni, &uni_len); + if(i == -0xff) { + idx++; + continue; + } + if(i == (int) c) { + if(idx < font->glyphs) { + bitmap = data->ptr + font->bitmap.offset + idx * font->glyph_size; + } + break; + } + } + + if(!bitmap) return 0; + + *geo = (area_t) { .x = 0, .y = 0, .width = font->width, .height = 0 }; + + canvas_t *glyph = gfx_obj_canvas_ptr(font->glyph_id); + + if( + !glyph || + !gfx_canvas_adjust_size(glyph, font->width, font->height) + ) { + return 0; + } + + // gfxboot_log("char 0x%04x, idx %u, bitmap %p\n", c, idx, bitmap); + + // got bitmap, now go for it + + color_t fg = gstate->color; + color_t bg = gstate->bg_color; + + color_t *col = glyph->ptr; + uint8_t cb; + + for(j = 0; j < font->height; j++) { + for(i = 0, cb = *bitmap++; i < font->width; i++) { + *col++ = (cb & 0x80) ? fg : bg; + cb <<= 1; + } + } + + return font->glyph_id; +} + + +#define GRAY_BITS 4 +#define GRAY_BIT_COUNT 3 +#define MAX_GRAY ((1 << GRAY_BITS) - 3) +#define REP_BG (MAX_GRAY + 1) +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_font2_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c) +{ + data_t *data = gfx_obj_mem_ptr(font->data_id); + if(!data) return 0; + + uint8_t *ofs_table = data->ptr + font->unimap.offset; + unsigned u, ofs = 0; + + for(u = 0; u < font->glyphs; u++) { + unsigned g = gfx_read_le32(ofs_table + 5 * u) & ((1 << 21) - 1); + if(g == c) { + ofs = gfx_read_le32(ofs_table + 5 * u + 1); + ofs >>= 21 - 8; + break; + } + } + + // gfxboot_serial(0, "font2: char %u, ofs %u\n", c, ofs); + + if( + u == font->glyphs || ofs < font->bitmap.offset || ofs >= data->size + ) { + return 0; + } + + uint8_t *glyph_data = data->ptr + ofs; + unsigned bit_ofs = 0; + + unsigned type = read_unsigned_bits(glyph_data, &bit_ofs, 2); + + if(type != 1) return 0; + + unsigned bits = read_unsigned_bits(glyph_data, &bit_ofs, 3) + 1; + + int bitmap_width = (int) read_unsigned_bits(glyph_data, &bit_ofs, bits); + int bitmap_height = (int) read_unsigned_bits(glyph_data, &bit_ofs, bits); + int x_ofs = read_signed_bits(glyph_data, &bit_ofs, bits); + int y_ofs = read_signed_bits(glyph_data, &bit_ofs, bits); + int x_advance = read_signed_bits(glyph_data, &bit_ofs, bits); + +#if 0 + gfxboot_serial(0, "font2: bits %u, bitmap %dx%d, ofs %dx%d, advance %d\n", + bits, bitmap_width, bitmap_height, x_ofs, y_ofs, x_advance + ); +#endif + + canvas_t *glyph = gfx_obj_canvas_ptr(font->glyph_id); + + if( + !glyph || + !gfx_canvas_adjust_size(glyph, bitmap_width, bitmap_height) + ) { + return 0; + } + + // recalculate offset relative to top of glyph + int d_y = font->height - font->baseline - y_ofs - bitmap_height; + + *geo = (area_t) { .x = x_ofs, .y = d_y, .width = x_advance, .height = 0 }; + + unsigned len = (unsigned) (bitmap_height * bitmap_width); + + static color_t last_fg = COLOR(0, 0, 0, 0); + static color_t color_map[MAX_GRAY + 1] = { }; + static int first_time_ever = 1; + + union { + color_t c; + struct { + uint8_t b, g, r, a; + } __attribute__ ((packed)); + } __attribute__ ((packed)) fg, tmp; + + fg.c = gstate->color; + + // if drawing color changed, recalculate color mapping table + if(fg.c != last_fg || first_time_ever) { + first_time_ever = 0; + last_fg = fg.c; + + for(int i = 0; i <= MAX_GRAY; i++) { + tmp.c = fg.c; + tmp.a = 255 - i * (255 - fg.a) / MAX_GRAY; + color_map[i] = tmp.c; + } + } + + for(u = 0; u < len;) { + unsigned lc = read_unsigned_bits(glyph_data, &bit_ofs, GRAY_BITS); + // gfxboot_serial(0, "(%u)", lc); + if(lc <= MAX_GRAY) { + glyph->ptr[u++] = color_map[lc]; + continue; + } + lc = lc == REP_BG ? 0 : MAX_GRAY; + unsigned lc_cnt = read_unsigned_bits(glyph_data, &bit_ofs, GRAY_BIT_COUNT) + 3; + // gfxboot_serial(0, "(%u)", lc_cnt); + while(u < len && lc_cnt--) glyph->ptr[u++] = color_map[lc]; + } + + return font->glyph_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_console_putc(unsigned c, int update_pos) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + switch(c) { + case 0x08: + if(update_pos) { + gfx_putc(gstate, ' ', 0); + if(gstate->pos.x >= gstate->pos.width) { + gstate->pos.x -= gstate->pos.width; + } + else { + gstate->pos.x = 0; + } + } + break; + + case 0x0a: + if(update_pos) { + gstate->pos.x = 0; + gstate->pos.y += gstate->pos.height; + } + + area_t src_area = gstate->region; + area_t dst_area = gstate->region; + + dst_area.height = src_area.height -= gstate->pos.height; + src_area.y += gstate->pos.height; + + if(gstate->pos.y + gstate->pos.height > gstate->region.height) { + gstate->pos.y -= gstate->pos.height; + + // scroll up + gfx_blt(0, gstate->canvas_id, dst_area, gstate->canvas_id, src_area); + + gfx_rect( + gstate, + 0, + gstate->region.height - gstate->pos.height, + gstate->region.width, + gstate->pos.height, + gstate->bg_color + ); + } + break; + + case 0x0d: + if(update_pos) { + gstate->pos.x = 0; + } + break; + + default: + gfx_putc(gstate, c, update_pos); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_console_puts(char *s) +{ + int c; + + while((c = gfx_utf8_dec(&s, 0))) { + gfx_console_putc((unsigned) c, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_putc(gstate_t *gstate, unsigned c, int update_pos) +{ + obj_id_t glyph_id; + area_t geo; + + if((glyph_id = gfx_font_render_glyph(gstate, &geo, c))) { + canvas_t *glyph = gfx_obj_canvas_ptr(glyph_id); + if(!glyph) return; + + area_t area = { + .x = gstate->region.x + gstate->pos.x + geo.x, + .y = gstate->region.y + gstate->pos.y + geo.y, + .width = glyph->width, + .height = glyph->height + }; + + area_t glyph_area = { + .x = 0, + .y = 0, + .width = glyph->width, + .height = glyph->height + }; + + area_t diff = gfx_clip(&area, &gstate->region); + + ADD_AREA(glyph_area, diff); + + gfx_blt(1, gstate->canvas_id, area, glyph_id, glyph_area); + + if(update_pos) gstate->pos.x += geo.width; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_puts(gstate_t *gstate, char *s, unsigned len) +{ + int c; + int start = gstate->pos.x; + + while(len) { + c = gfx_utf8_dec(&s, &len); + if(c < 0) c = 0xfffd; + + switch(c) { + case 0x0a: + gstate->pos.y += gstate->pos.height; + + case 0x0d: + gstate->pos.x = start; + break; + + default: + gfx_putc(gstate, (unsigned) c, 1); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// clip area1 to difference of area1 and area2 +// +// return difference (diff = area1_clipped - area1_unclipped) +// +area_t gfx_clip(area_t *area1, area_t *area2) +{ + area_t diff = {}; + int d; + + d = area1->x - area2->x; + + if(d < 0) { + diff.x = -d; + diff.width = d; + } + + d = area1->y - area2->y; + + if(d < 0) { + diff.y = -d; + diff.height = d; + } + + d = area2->x + area2->width - (area1->x + area1->width); + + if(d < 0) diff.width += d; + + d = area2->y + area2->height - (area1->y + area1->height); + + if(d < 0) diff.height += d; + + area1->x += diff.x; + area1->y += diff.y; + area1->width += diff.width; + area1->height += diff.height; + + if(area1->width < 0) { + diff.width = -area1->width; + area1->width = 0; + } + + if(area1->height < 0) { + diff.height = -area1->height; + area1->height = 0; + } + + return diff; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_blt(int mode, obj_id_t dst_id, area_t dst_area, obj_id_t src_id, area_t src_area) +{ + canvas_t *dst_c = gfx_obj_canvas_ptr(dst_id); + canvas_t *src_c = gfx_obj_canvas_ptr(src_id); + + gfxboot_serial(4, "dst #%d (%dx%d_%dx%d), src #%d (%dx%d_%dx%d)\n", + OBJ_ID2IDX(dst_id), + dst_area.x, dst_area.y, dst_area.width, dst_area.height, + OBJ_ID2IDX(src_id), + src_area.x, src_area.y, src_area.width, src_area.height + ); + + if(!dst_c || !src_c) return; + + dst_area.width = MIN(src_area.width, dst_area.width); + dst_area.height = MIN(src_area.height, dst_area.height); + +#if 0 + // additional clipping needed? + area_t tmp_area, diff; + + tmp_area = (area_t) { .width = dst_c->width, .height = dst_c->height }; + + diff = gfx_clip(&dst_area, &tmp_area); + + ADD_AREA(src_area, diff); + + tmp_area = (area_t) { .width = src_c->width, .height = src_c->height }; + + diff = gfx_clip(&src_area, &tmp_area); + + ADD_AREA(dst_area, diff); +#endif + + if(dst_area.width <= 0 || dst_area.height <= 0) return; + + color_t *dst_pixel = dst_c->ptr; + color_t *src_pixel = src_c->ptr; + + dst_pixel += dst_area.y * dst_c->width + dst_area.x; + src_pixel += src_area.y * src_c->width + src_area.x; + + if(mode == 0) { + int i; + for(i = 0; i < dst_area.height; i++, dst_pixel += dst_c->width, src_pixel += src_c->width) { + gfx_memcpy(dst_pixel, src_pixel, (unsigned) dst_area.width * COLOR_BYTES); + } + } + else if(mode == 1) { + int i, j; + for(j = 0; j < dst_area.height; j++, dst_pixel += dst_c->width, src_pixel += src_c->width) { + for(i = 0; i < dst_area.width; i++) { + dst_pixel[i] = gfx_color_merge(dst_pixel[i], src_pixel[i]); + } + } + } + + if(dst_id == gfxboot_data->screen.virt_id) { + gfx_screen_update(dst_area); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +color_t gfx_color_merge(color_t dst, color_t src) +{ + union { + color_t c; + struct { + uint8_t b, g, r, a; + } __attribute__ ((packed)); + } __attribute__ ((packed)) d, s; + + d.c = dst; + s.c = src; + + if(s.a == 0xff) return d.c; + if(s.a == 0) { + s.a = d.a; + return s.c; + } + + s.b += (((int) d.b - s.b + 1) * s.a) >> 8; + s.g += (((int) d.g - s.g + 1) * s.a) >> 8; + s.r += (((int) d.r - s.r + 1) * s.a) >> 8; + +#if 0 + // slightly more correct would be + s.b += (((int) d.b - s.b + (d.b > s.b ? 1 : 0)) * s.a) >> 8; + s.g += (((int) d.g - s.g + (d.g > s.g ? 1 : 0)) * s.a) >> 8; + s.r += (((int) d.r - s.r + (d.r > s.r ? 1 : 0)) * s.a) >> 8; +#endif + + s.a = d.a; + + return s.c; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_getpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t *color) +{ + int ok = 0; + + if(x >= 0 && y >= 0 && x < gstate->region.width && y < gstate->region.height) { + x += gstate->region.x; + y += gstate->region.y; + if(x >= 0 && y >= 0 && x < canvas->width && y < canvas->height) { + *color = canvas->ptr[x + y * canvas->width]; + ok = 1; + } + } + + return ok; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_putpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t color) +{ + // gfxboot_serial(0, "X putpixel %dx%d\n", x, y); + + if(x >= 0 && y >= 0 && x < gstate->region.width && y < gstate->region.height) { + x += gstate->region.x; + y += gstate->region.y; + if(x >= 0 && y >= 0 && x < canvas->width && y < canvas->height) { + int ofs = x + y * canvas->width; + canvas->ptr[ofs] = gfx_color_merge(canvas->ptr[ofs], color); + if(gstate->canvas_id == gfxboot_data->screen.virt_id) { + gfx_screen_update((area_t) { .x = x, .y = y, .width = 1, .height = 1 }); + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_line(gstate_t *gstate, canvas_t *canvas, int x0, int y0, int x1, int y1, color_t color) +{ + if(x1 < x0) { + int tmp; + tmp = x0; x0 = x1; x1 = tmp; + tmp = y0; y0 = y1; y1 = tmp; + } + + int dx = x1 - x0; + int dy = y1 - y0; + int acc; + + // shortcut for horizontal and vertical lines + if(dy == 0 || dx == 0) { + if(dy < 0) { + int tmp = y0; y0 = y1; y1 = tmp; + dy = -dy; + } + if(dx) { + gfx_rect(gstate, x0, y0, dx + 1, 1, color); + } + else if(dy) { + gfx_rect(gstate, x0, y0, 1, dy + 1, color); + } + + return; + } + + if(dy >= 0) { + if(dy <= dx) { + for(acc = -(dx / 2); x0 <= x1; x0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dy; + if(acc >= 0) { + acc -= dx; + y0++; + } + } + } + else { + for(acc = -(dy / 2); y0 <= y1; y0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dx; + if(acc >= 0) { + acc -= dy; + x0++; + } + } + } + } + else { + dy = -dy; + if(dy <= dx) { + for(acc = -(dx / 2); x0 <= x1; x0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dy; + if(acc >= 0) { + acc -= dx; + y0--; + } + } + } + else { + for(acc = -(dy / 2); y0 >= y1; y0--) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dx; + if(acc >= 0) { + acc -= dy; + x0++; + } + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_rect(gstate_t *gstate, int x, int y, int width, int height, color_t c) +{ + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(!canvas) return; + + area_t area = { + .x = gstate->region.x + x, + .y = gstate->region.y + y, + .width = width, + .height = height + }; + +#if 0 + gfxboot_serial(0, "rect before: %dx%d_%dx%d / %dx%d_%dx%d\n", + area.x, area.y, area.width, area.height, + gstate->region.x, gstate->region.y, gstate->region.width, gstate->region.height + ); +#endif + + gfx_clip(&area, &gstate->region); + +#if 0 + gfxboot_serial(0, "rect after: %dx%d_%dx%d\n", + area.x, area.y, area.width, area.height + ); +#endif + + color_t *pixel = canvas->ptr; + + pixel += area.y * canvas->width + area.x; + + int i, j; + + for(j = 0; j < area.height; j++, pixel += canvas->width) { + for(i = 0; i < area.width; i++) { + pixel[i] = gfx_color_merge(pixel[i], c); + } + } + + if(gstate->canvas_id == gfxboot_data->screen.virt_id) { + gfx_screen_update(area); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned read_unsigned_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits) +{ + unsigned rem, ptr; + unsigned data = 0, dptr = 0; + + while(bits > 0) { + ptr = *bit_ofs >> 3; + rem = 8 - (*bit_ofs & 7); + if(rem > bits) rem = bits; + data += (((unsigned) buf[ptr] >> (*bit_ofs & 7)) & ((1u << rem) - 1)) << dptr; + dptr += rem; + *bit_ofs += rem; + bits -= rem; + } + + return data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int read_signed_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits) +{ + int i; + + i = (int) read_unsigned_bits(buf, bit_ofs, bits); + + if(bits == 0) return i; + + if((i & (1 << (bits - 1)))) { + i += -1 << bits; + } + + return i; +} diff --git a/gfxboot_font.c b/gfxboot_font.c new file mode 100644 index 0000000..8213c82 --- /dev/null +++ b/gfxboot_font.c @@ -0,0 +1,199 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// font + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_font_new() +{ + return gfx_obj_alloc(OTYPE_FONT, OBJ_FONT_SIZE()); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +font_t *gfx_obj_font_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_FONT) return 0; + + return (font_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_font_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + font_t *f = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_FONT_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + if(f->type == 1) { + gfxboot_log("glyphs %d, size %dx%d, line height %d", f->glyphs, f->width, f->height, f->line_height); + } + else if(f->type == 2) { + gfxboot_log("glyphs %d, height %d, line height %d, base %d", f->glyphs, f->height, f->line_height, f->baseline); + } + if(f->parent_id) gfxboot_log(", parent %s", gfx_obj_id2str(f->parent_id)); + + return 1; + } + + if(style.dump) { + canvas_t *glyph = gfx_obj_canvas_ptr(f->glyph_id); + gfxboot_log(" type %u, glyphs %d\n", f->type, f->glyphs); + gfxboot_log(" font size %dx%d, line height %d, baseline %d\n", f->width, f->height, f->line_height, f->baseline); + if(glyph) { + gfxboot_log(" bitmap size %dx%d\n", glyph->max_width, glyph->max_height); + } + gfxboot_log(" bitmap table: offset %u, size %u\n", f->bitmap.offset, f->bitmap.size); + gfxboot_log(" char index: offset %u, size %u\n", f->unimap.offset, f->unimap.size); + gfxboot_log(" data_id %s\n", gfx_obj_id2str(f->data_id)); + gfxboot_log(" glyph_id %s\n", gfx_obj_id2str(f->glyph_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_font_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + font_t *font = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(font && data_size == OBJ_FONT_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(font->parent_id); + more_gc += gfx_obj_ref_dec_delay_gc(font->data_id); + more_gc += gfx_obj_ref_dec_delay_gc(font->glyph_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_font_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + font_t *font = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(font && data_size == OBJ_FONT_SIZE()) { + if(id == font->parent_id || id == font->data_id || id == font->glyph_id) return 1; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_font_open(obj_id_t font_file) +{ + data_t *mem = gfx_obj_mem_ptr(font_file); + unsigned ok = 0; + + if(!mem) return 0; + + obj_id_t font_id = gfx_obj_font_new(); + + font_t *font = gfx_obj_font_ptr(font_id); + + if(!font) return 0; + + font->data_id = font_file; + + uint8_t *ptr = mem->ptr; + unsigned size = mem->size; + + int max_bitmap_width = 0; + int max_bitmap_height = 0; + + if( + size >= 0x20 && + gfx_read_le32(ptr) == 0x864ab572 + ) { + unsigned header_size = gfx_read_le32(ptr + 8); + + font->glyphs = gfx_read_le32(ptr + 16); + font->glyph_size = gfx_read_le32(ptr + 20); + font->height = (int) gfx_read_le32(ptr + 24); + font->width = (int) gfx_read_le32(ptr + 28); + font->line_height = font->height; + + font->bitmap.offset = header_size; + font->bitmap.size = font->glyphs * font->glyph_size; + + font->unimap.offset = font->bitmap.offset + font->bitmap.size; + font->unimap.size = size - font->unimap.offset; + + max_bitmap_width = font->width; + max_bitmap_height = font->height; + + if( + font->height == (int) font->glyph_size && + font->width <= 8 && + font->unimap.size > 0 + ) { + font->type = 1; + ok = 1; + } + } + else if( + size >= 0x10 && + gfx_read_le32(ptr) == 0xa42a9123 + ) { + unsigned header_size = 0x10; + + font->glyphs = gfx_read_le32(ptr + 12); + max_bitmap_width = ptr[7]; + max_bitmap_height = ptr[8]; + font->height = ptr[9]; + font->line_height = ptr[10]; + font->baseline = (int8_t) ptr[11]; + font->glyphs = gfx_read_le32(ptr + 12); + + font->unimap.offset = header_size; + font->unimap.size = 5 * font->glyphs; + + font->bitmap.offset = font->unimap.offset + font->unimap.size; + font->bitmap.size = size - font->bitmap.offset; + + if(font->bitmap.size > 0) { + font->type = 2; + ok = 1; + } + } + + if(ok) { + font->glyph_id = gfx_obj_canvas_new(max_bitmap_width, max_bitmap_height); + if(!font->glyph_id) ok = 0; + } + + if(ok) { + gfx_obj_ref_inc(font->data_id); + } + else { + gfx_obj_ref_dec(font->glyph_id); + gfx_obj_ref_dec(font_id); + font_id = 0; + } + + return font_id; +} diff --git a/gfxboot_grub.c b/gfxboot_grub.c new file mode 100644 index 0000000..31fcbd0 --- /dev/null +++ b/gfxboot_grub.c @@ -0,0 +1,511 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +GRUB_MOD_LICENSE ("GPLv3+"); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gfxboot_data_t *gfxboot_data; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static void serial_init(void); +static void serial_putc(int key); + +static void grub_gfxboot_page_0(void); +static grub_err_t grub_gfxboot_init(int entry, grub_menu_t menu, int nested); +static int grub_gfxboot_process_key(int *key); +static void grub_gfxboot_set_chosen_entry(int entry, void *data); +static void grub_gfxboot_print_timeout(int timeout, void *data); +static void grub_gfxboot_clear_timeout(void *data); +static void grub_gfxboot_data_free(void); +static void grub_gfxboot_fini(void *data); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void serial_init() +{ + int x; + unsigned port = 0x3f8; + + gfxboot_data->serial.port = port; + + // DLAB = 1 + grub_outb(0x83, port + 3); + + // set to 115200 baud + grub_outb(1, port + 0); + grub_outb(0, port + 1); + + // DLAB = 0, 8 bits, no parity + grub_outb(0x03, port + 3); + + x = grub_inb(port + 3); + + // gfxboot_log("x = 0x%02x\n", x); + + if(x == 0xff) { + gfxboot_data->serial.port = 0; + return; + } + + // IRQ disable + grub_outb(0x00, port + 1); + + // FIFO enable + grub_outb(0x01, port + 2); + + // set terminal colors to normal, looks better + gfxboot_log("\033[00m"); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void serial_putc(int key) +{ + unsigned cnt = 1 << 20; + + if(!gfxboot_data || !gfxboot_data->serial.port) return; + + // wait until ready, but not indefinitely... + while(!(grub_inb(gfxboot_data->serial.port + 5) & 0x20) && cnt--); + + grub_outb(key, gfxboot_data->serial.port); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to serial line and/or console. +// +// dst - bitmask; bit 0: serial, bit 1: console +// +int gfxboot_printf(int dst, const char *format, ...) +{ + char *s; + int log_level_serial = (signed char) ((dst >> 8) & 0xff); + int log_level_console = (signed char) ((dst >> 16) & 0xff); + + if(!format) return 0; + + va_list args; + va_start(args, format); + s = grub_xvasprintf(format, args); + va_end(args); + + if( + (dst & 1) && + gfxboot_data && + log_level_serial <= gfxboot_data->vm.debug.log_level_serial + ) { + char *t = s; + while(*t) { + if(*t == '\n') serial_putc('\r'); + serial_putc(*t++); + } + } + + if( + (dst & 2) && + gfxboot_data && + log_level_console <= gfxboot_data->vm.debug.log_level_console + ) { + char *t = s; + while(*t) { + if(*t == '\n') gfx_console_putc('\r', 1); + gfx_console_putc(*t++, 1); + } + } + + grub_free(s); + + return grub_strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to buffer. +// +int gfxboot_asprintf(char **str, const char *format, ...) +{ + char *s; + + va_list args; + va_start(args, format); + *str = s = grub_xvasprintf(format, args); + va_end(args); + + return s ? (int) grub_strlen(s) : -1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to static buffer. +// +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = grub_vsnprintf(str, size, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_page_0() +{ + void *fb; + + grub_video_get_raw_info(NULL, &fb); + + if(fb != gfxboot_data->screen.real.ptr) grub_video_swap_buffers(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +grub_err_t grub_gfxboot_init(int entry, grub_menu_t menu, int nested) +{ + struct grub_video_mode_info mode_info; + struct grub_menu_viewer *instance; + grub_err_t err = GRUB_ERR_NONE; + void *fb0 = NULL, *fb1 = NULL; + + int i; + + grub_gfxboot_data_free(); + + gfxboot_data = grub_zalloc(sizeof *gfxboot_data); + if(!gfxboot_data) return grub_errno; + + instance = grub_zalloc(sizeof *instance); + if(!instance) return grub_errno; + + // don't log to console + gfxboot_data->vm.debug.log_level_console = -1; + + gfxboot_data->menu.entry = entry; + gfxboot_data->menu.nested = nested; + gfxboot_data->menu.timeout.max = grub_menu_get_timeout(); + + if(menu->size > 0) { + grub_menu_entry_t me; + + gfxboot_data->menu.size = menu->size; + gfxboot_data->menu.entries = grub_zalloc(menu->size * sizeof *gfxboot_data->menu.entries); + if(!gfxboot_data->menu.entries) return grub_errno; + + for(i = 0, me = menu->entry_list; me && i < menu->size; me = me->next, i++) { + gfxboot_data->menu.entries[i].title = me->title; + } + } + + err = grub_video_get_raw_info(&mode_info, &fb0); + + if(err) return err; + + grub_video_swap_buffers(); + + grub_video_get_raw_info(NULL, &fb1); + + if(fb1 == NULL || fb0 <= fb1) { + grub_video_swap_buffers(); + gfxboot_data->screen.real.ptr = fb0; + } + else { + gfxboot_data->screen.real.ptr = fb1; + } + + if(!gfxboot_data->screen.real.ptr) return GRUB_ERR_BAD_DEVICE; + + gfxboot_data->screen.real.width = mode_info.width; + gfxboot_data->screen.real.height = mode_info.height; + gfxboot_data->screen.real.bytes_per_line = mode_info.pitch; + gfxboot_data->screen.real.bytes_per_pixel = mode_info.bytes_per_pixel; + gfxboot_data->screen.real.bits_per_pixel = mode_info.bpp; + + gfxboot_data->screen.real.red.pos = mode_info.red_field_pos; + gfxboot_data->screen.real.red.size = mode_info.red_mask_size; + gfxboot_data->screen.real.green.pos = mode_info.green_field_pos; + gfxboot_data->screen.real.green.size = mode_info.green_mask_size; + gfxboot_data->screen.real.blue.pos = mode_info.blue_field_pos; + gfxboot_data->screen.real.blue.size = mode_info.blue_mask_size; + gfxboot_data->screen.real.res.pos = mode_info.reserved_field_pos; + gfxboot_data->screen.real.res.size = mode_info.reserved_mask_size; + + grub_video_set_viewport(0, 0, gfxboot_data->screen.real.width, gfxboot_data->screen.real.height); + +#if 0 + // setup a commandline terminal window + // cf. gfxmenu/init_terminal() + grub_gfxterm_set_window( + GRUB_VIDEO_RENDER_TARGET_DISPLAY, + 100, 100, + 300, 200, + 0, + grub_font_get(""), + 0 + ); +#endif + + instance->data = NULL; + instance->set_chosen_entry = grub_gfxboot_set_chosen_entry; + instance->print_timeout = grub_gfxboot_print_timeout; + instance->clear_timeout = grub_gfxboot_clear_timeout; + instance->process_key = grub_gfxboot_process_key; + instance->fini = grub_gfxboot_fini; + + serial_init(); + + // reserve 16 MiB for our VM + gfxboot_data->vm.mem.size = 16 * (1 << 20); + gfxboot_data->vm.mem.ptr = grub_zalloc(gfxboot_data->vm.mem.size); + if(!gfxboot_data->vm.mem.ptr) return grub_errno; + + if(grub_video_adapter_active) { + gfxboot_log("adapter name: %s\n", grub_video_adapter_active->name); + } + + gfxboot_log( + "video mode info:\n type = 0x%x\n fb0 = %p, fb1 = %p\n", + mode_info.mode_type, fb0, fb1 + ); + + if(gfxboot_init()) { + err = GRUB_ERR_MENU; + } + else { + grub_menu_register_viewer(instance); + } + + return err; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int grub_gfxboot_process_key(int *key) +{ + int action; + int key2; + + grub_gfxboot_page_0(); + + if(!gfxboot_data || !key) return 0; + + key2 = *key; + + if((key2 & GRUB_TERM_CTRL)) { + key2 &= 0x1f; + } + + gfxboot_debug(2, 2, "grub_gfxboot_process_key: key = 0x%x '%c'\n", key2, key2 >= ' ' ? key2 : ' '); + + if(gfxboot_data->menu.timeout.current > 0) { + grub_env_unset("timeout"); + grub_env_unset("fallback"); + grub_gfxboot_clear_timeout(NULL); + } + + action = gfxboot_process_key(key2); + + gfxboot_debug(1, 2, "grub_gfxboot_process_key: action = %d.0x%02x\n", action >> 8, action & 0xff); + + *key = 0; + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_set_chosen_entry(int entry, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.entry = entry; + + gfxboot_log("set_chosen_entry: %d\n", entry); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_print_timeout(int timeout, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = timeout; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_clear_timeout(void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = 0; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf) +{ + int size = -1; + char *tmp = NULL; + + *buf = NULL; + + grub_errno = 0; + + if(!name) return size; + + if(*name != '/' && *name != '(') { + const char *prefix = grub_env_get("prefix"); + if(!prefix) prefix = ""; + + int prefix_len = grub_strlen(prefix); + int name_len = grub_strlen(name); + + tmp = grub_zalloc(prefix_len + name_len + 2); + + if(!tmp) return size; + + gfx_memcpy(tmp, prefix, prefix_len); + gfx_memcpy(tmp + prefix_len, "/", 1); + gfx_memcpy(tmp + prefix_len + 1, name, name_len); + + name = tmp; + } + + grub_file_t file = grub_file_open(name, GRUB_FILE_TYPE_NONE); + + gfxboot_log("open(%s) = %p\n", name, file); + + if(file) { + if(file->size == 0) { + size = 0; + } + else if(file->size > 0) { + *buf = grub_zalloc(file->size); + if(*buf) { + size = grub_file_read(file, *buf, file->size); + if(size != (int) file->size) { + grub_free(*buf); + *buf = NULL; + size = -1; + } + } + } + + grub_file_close(file); + } + + gfxboot_log("read(%s) = %d\n", name, size); + + grub_free(tmp); + + return size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_sys_free(void *ptr) +{ + if(ptr) grub_free(ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned long gfxboot_sys_strlen(const char *s) +{ + return grub_strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_strcmp(const char *s1, const char *s2) +{ + return grub_strcmp(s1, s2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base) +{ + return grub_strtol(nptr, endptr, base); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_screen_update(area_t area __attribute__ ((unused))) +{ +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_getkey() +{ + return grub_getkey(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_data_free() +{ + if(gfxboot_data) { + grub_free(gfxboot_data->menu.entries); + grub_free(gfxboot_data->vm.mem.ptr); + + grub_free(gfxboot_data); + } + + gfxboot_data = NULL; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_fini(void *data __attribute__ ((unused))) +{ + gfxboot_log("grub_gfxboot_fini %p\n", gfxboot_data); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GRUB_MOD_INIT(gfxboot) +{ + struct grub_term_output *term; + + FOR_ACTIVE_TERM_OUTPUTS(term) { + if(grub_gfxmenu_try_hook && term->fullscreen) { + term->fullscreen(); + break; + } + } + + grub_gfxmenu_try_hook = grub_gfxboot_init; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GRUB_MOD_FINI(gfxboot) +{ + gfxboot_log("gfxboot fini %p\n", gfxboot_data); + + grub_gfxboot_data_free(); + + grub_gfxmenu_try_hook = NULL; +} + diff --git a/gfxboot_gstate.c b/gfxboot_gstate.c new file mode 100644 index 0000000..1764c89 --- /dev/null +++ b/gfxboot_gstate.c @@ -0,0 +1,102 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// gstate + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_gstate_new() +{ + return gfx_obj_alloc(OTYPE_GSTATE, OBJ_GSTATE_SIZE()); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gstate_t *gfx_obj_gstate_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_GSTATE) return 0; + + return (gstate_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_gstate_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + gstate_t *gstate = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_GSTATE_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("region %dx%d_%dx%d", gstate->region.x, gstate->region.y, gstate->region.width, gstate->region.height); + + return 1; + } + + if(style.dump) { + int width = 0; + int height = 0; + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + width = canvas->width; + height = canvas->height; + } + + gfxboot_log(" pos %dx%d", gstate->pos.x, gstate->pos.y); + if(gstate->pos.width || gstate->pos.height) { + gfxboot_log(", char size %dx%d", gstate->pos.width, gstate->pos.height); + } + gfxboot_log("\n color #%08x, bg_color #%08x\n", gstate->color, gstate->bg_color); + gfxboot_log(" canvas %s (%dx%d)\n", gfx_obj_id2str(gstate->canvas_id), width, height); + gfxboot_log(" font %s\n", gfx_obj_id2str(gstate->font_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_gstate_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + gstate_t *gstate = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(gstate && data_size == OBJ_GSTATE_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(gstate->canvas_id); + more_gc += gfx_obj_ref_dec_delay_gc(gstate->font_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_gstate_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + gstate_t *gstate = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(gstate && data_size == OBJ_GSTATE_SIZE()) { + if(id == gstate->canvas_id || id == gstate->font_id) return 1; + } + + return 0; +} diff --git a/gfxboot_hash.c b/gfxboot_hash.c new file mode 100644 index 0000000..ca37e1f --- /dev/null +++ b/gfxboot_hash.c @@ -0,0 +1,334 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// hash + +static unsigned find_key(hash_t *hash, data_t *key, int *match); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_hash_new(unsigned max) +{ + if(!max) max = 0x10; + + obj_id_t id = gfx_obj_alloc(OTYPE_HASH, OBJ_HASH_SIZE(max)); + hash_t *h = gfx_obj_hash_ptr(id); + + if(h) { + h->max = max; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +hash_t *gfx_obj_hash_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_HASH) return 0; + + return (hash_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_hash_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + hash_t *h = ptr->data.ptr; + + if(ptr->data.size != OBJ_HASH_SIZE(h->max)) { + GFX_ERROR(err_internal); + return *idx = 0; + } + + if(*idx >= h->size) { + return 0; + } + + gfx_obj_ref_inc(*id1 = h->ptr[*idx].key); + gfx_obj_ref_inc(*id2 = h->ptr[*idx].value); + (*idx)++; + + return 2; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_hash_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + hash_t *h = ptr->data.ptr; + unsigned u; + obj_id_t key, value; + + if(ptr->data.size != OBJ_HASH_SIZE(h->max)) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("size %u, max %u", h->size, h->max); + if(h->parent_id) gfxboot_log(", parent %s", gfx_obj_id2str(h->parent_id)); + + return 1; + } + + for(u = 0; u < h->size && (!style.max || u < style.max); u++) { + key = h->ptr[u].key; + if(!key) continue; + value = h->ptr[u].value; + if(style.dump) gfxboot_log(" "); + gfx_obj_dump(key, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log(" => "); + gfx_obj_dump(value, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_hash_set(obj_id_t hash_id, obj_id_t key_id, obj_id_t value_id, int do_ref_cnt) +{ + unsigned u; + int match; + + hash_t *hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return 0; + + data_t *key = gfx_obj_mem_ptr(key_id); + if(!key) return 0; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX set: key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + if(!match) { + hash->size++; + if(hash->size > hash->max) { + unsigned max = hash->max + (hash->max >> 3) + 0x10; + hash_id = gfx_obj_realloc(hash_id, OBJ_HASH_SIZE(max)); + if(!hash_id) return 0; + hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return 0; + hash->max = max; + } + if(u + 1 < hash->size) { + // gfxboot_log("XXX set: move %d -> %d [%d]\n", (int) u, (int) u + 1, (int) (hash->size - u - 1)); + gfx_memcpy(hash->ptr + u + 1, hash->ptr + u, (sizeof *hash->ptr) * (hash->size - u - 1)); + hash->ptr[u].key = 0; + hash->ptr[u].value = 0; + } + } + + obj_id_t orig_key_id = 0; + + // if key is writable string, make a copy + obj_t *key_obj = gfx_obj_ptr(key_id); + if(key_obj && !key_obj->flags.ro) { + orig_key_id = key_id; + key_id = gfx_obj_mem_dup(key_id, 0); + } + + if(do_ref_cnt) { + if(!orig_key_id) gfx_obj_ref_inc(key_id); + gfx_obj_ref_inc(value_id); + gfx_obj_ref_dec(hash->ptr[u].key); + gfx_obj_ref_dec(hash->ptr[u].value); + } + + // this is a bit tricky: release orig_key_id regardless of do_ref_cnt + if(orig_key_id) gfx_obj_ref_dec(orig_key_id); + + hash->ptr[u].key = key_id; + hash->ptr[u].value = value_id; + + return hash_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_pair_t gfx_obj_hash_get(obj_id_t hash_id, data_t *key) +{ + obj_id_t orig_hash_id = hash_id; + unsigned u, level = 0; + int match; + hash_t *hash; + + do { + // Return hash_id for hash where search started - or hash where key was found in? + // With next line it's the second. Remove that line for first variant. + orig_hash_id = hash_id; + + hash = gfx_obj_hash_ptr(hash_id); + + if(!hash) return (obj_id_pair_t) {}; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX get key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + hash_id = hash->parent_id; + } + while(!match && hash_id && level++ < 100); + + if(!match) return (obj_id_pair_t) {}; + + return (obj_id_pair_t) { .id1 = orig_hash_id, .id2 = hash->ptr[u].value }; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_hash_del(obj_id_t hash_id, obj_id_t key_id, int do_ref_cnt) +{ + unsigned u; + int match; + + hash_t *hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return; + + data_t *key = gfx_obj_mem_ptr(key_id); + if(!key) return; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX del key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + if(match) { + if(do_ref_cnt) { + gfx_obj_ref_dec(hash->ptr[u].key); + gfx_obj_ref_dec(hash->ptr[u].value); + } + + hash->size--; + + if(u < hash->size) { + // gfxboot_log("XXX del: move %d -> %d [%d]\n", (int) u + 1, (int) u, (int) (hash->size - u)); + gfx_memcpy(hash->ptr + u, hash->ptr + u + 1, (sizeof *hash->ptr) * (hash->size - u)); + } + + hash->ptr[hash->size].key = 0; + hash->ptr[hash->size].value = 0; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_hash_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + hash_t *hash = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx, more_gc = 0; + + if(hash && data_size == OBJ_HASH_SIZE(hash->max)) { + more_gc += gfx_obj_ref_dec_delay_gc(hash->parent_id); + for(idx = 0; idx < hash->size; idx++) { + more_gc += gfx_obj_ref_dec_delay_gc(hash->ptr[idx].key); + more_gc += gfx_obj_ref_dec_delay_gc(hash->ptr[idx].value); + } + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_hash_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + hash_t *hash = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx; + + if(hash && data_size == OBJ_HASH_SIZE(hash->max)) { + if(hash->parent_id == id) return 1; + for(idx = 0; idx < hash->size; idx++) { + if( + id == hash->ptr[idx].key || + id == hash->ptr[idx].value + ) return 1; + } + } + + return 0; +} + +#if 0 + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// linear search +unsigned find_key(hash_t *hash, data_t *key, int *match) +{ + unsigned u; + data_t *hash_key; + + *match = 0; + + for(u = 0; u < hash->size; u++) { + hash_key = gfx_obj_mem_ptr(hash->ptr[u].key); + if(!hash_key) continue; + int i = gfx_obj_mem_cmp(key, hash_key); + if(i > 0) continue; + if(i == 0) *match = 1; + break; + } + + return u; +} + +#else + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// binary search +unsigned find_key(hash_t *hash, data_t *key, int *match) +{ + unsigned u_start, u_end, u; + data_t *hash_key; + + *match = 0; + + u_start = u = 0; + u_end = hash->size; + + while(u_end > u_start) { + u = (u_end + u_start) / 2; + + hash_key = gfx_obj_mem_ptr(hash->ptr[u].key); + if(!hash_key) return 0; + + int i = gfx_obj_mem_cmp(key, hash_key); + + if(i == 0) { + *match = 1; + break; + } + + if(u_end == u_start + 1) { + if(i > 0) u++; + break; + } + + if(i > 0) { + if(u_end == u + 1) { + if(i > 0) u++; + break; + } + u_start = u; + } + else { + u_end = u; + } + } + + return u; +} +#endif diff --git a/gfxboot_jpeg.c b/gfxboot_jpeg.c new file mode 100644 index 0000000..b5b3665 --- /dev/null +++ b/gfxboot_jpeg.c @@ -0,0 +1,950 @@ +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wshadow" + +#include "gfxboot.h" + +#define ERR_NO_SOI 1 +#define ERR_NOT_8BIT 2 +#define ERR_HEIGHT_MISMATCH 3 +#define ERR_WIDTH_MISMATCH 4 +#define ERR_BAD_WIDTH_OR_HEIGHT 5 +#define ERR_TOO_MANY_COMPPS 6 +#define ERR_ILLEGAL_HV 7 +#define ERR_QUANT_TABLE_SELECTOR 8 +#define ERR_NOT_YCBCR_221111 9 +#define ERR_UNKNOWN_CID_IN_SCAN 10 +#define ERR_NOT_SEQUENTIAL_DCT 11 +#define ERR_WRONG_MARKER 12 +#define ERR_NO_EOI 13 +#define ERR_BAD_TABLES 14 +#define ERR_DEPTH_MISMATCH 15 + +#define ISHIFT 11 + +#define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) +#define IMULT(a, b) (((a) * (b)) >> ISHIFT) +#define ITOINT(a) ((a) >> ISHIFT) + +#ifndef __P +# define __P(x) x +#endif + +/* special markers */ +#define M_BADHUFF -1 +#define M_EOF 0x80 + +struct in { + unsigned int bits; + int left; + int marker; + void *data; +}; + +/*********************************/ +struct dec_hufftbl; +struct enc_hufftbl; + +union hufftblp { + struct dec_hufftbl *dhuff; + struct enc_hufftbl *ehuff; +}; + +struct scan { + int dc; /* old dc value */ + + union hufftblp hudc; + union hufftblp huac; + int next; /* when to switch to next scan */ + + int cid; /* component id */ + int hv; /* horiz/vert, copied from comp */ + int tq; /* quant tbl, copied from comp */ +}; + +/*********************************/ + +#define DECBITS 8 /* seems to be the optimum */ + +struct dec_hufftbl { + int maxcode[17]; + int valptr[16]; + unsigned char vals[256]; + unsigned int llvals[1 << DECBITS]; +}; + +struct jpeg_decdata { + int dcts[6 * 64 + 16]; + int out[64 * 6]; + int dquant[3][64]; +}; + +static void decode_mcus __P((struct in *, int *, int, struct scan *, int *)); +static void dec_makehuff __P((struct dec_hufftbl *, int *, unsigned char *)); + +static void setinput __P((struct in *)); +/*********************************/ + +#undef PREC +#define PREC int + +static void idctqtab __P((unsigned char *, PREC *)); +static void idct __P((int *, int *, PREC *, PREC, int)); +static void scaleidctqtab __P((PREC *, PREC)); + +/*********************************/ + +static void initcol __P((PREC[][64])); + +static void col221111(int *out, unsigned char *pic, int width, int bits); +static unsigned char tmp_img[16*16*4]; /* 16 x 16, 32 bit color */ + +/*********************************/ + +#define M_SOI 0xd8 +#define M_APP0 0xe0 +#define M_DQT 0xdb +#define M_SOF0 0xc0 +#define M_DHT 0xc4 +#define M_DRI 0xdd +#define M_SOS 0xda +#define M_RST0 0xd0 +#define M_EOI 0xd9 +#define M_COM 0xfe + +static unsigned char *datap; +static struct jpeg_decdata decdata; + +static void memset(void *p, int c, int n) +{ + unsigned char *x = p; + + while(n--) *x++ = c; +} + + +static int getbyte(void) +{ + return *datap++; +} + +static int getword(void) +{ + int c1, c2; + c1 = *datap; + c2 = datap[1]; + datap += 2; + return c1 << 8 | c2; +} + +struct comp { + int cid; + int hv; + int tq; +}; + +#define MAXCOMP 4 +struct jpginfo { + int nc; /* number of components */ + int ns; /* number of scans */ + int dri; /* restart interval */ +}; + +static struct jpginfo info; +static struct comp comps[MAXCOMP]; + +static struct scan dscans[MAXCOMP]; + +static unsigned char quant[4][64]; + +static struct dec_hufftbl dhuff[4]; + +#define dec_huffdc (dhuff + 0) +#define dec_huffac (dhuff + 2) + +static struct in in; + +static int readtables(int till) +{ + int m, l, i, j, lq, pq, tq; + int tc, th, tt; + + for (;;) { + if (getbyte() != 0xff) + return -1; + if ((m = getbyte()) == till) + break; + + switch (m) { + case 0xc2: + return 0; + + case M_DQT: + lq = getword(); + while (lq > 2) { + pq = getbyte(); + tq = pq & 15; + if (tq > 3) + return -1; + pq >>= 4; + if (pq != 0) + return -1; + for (i = 0; i < 64; i++) + quant[tq][i] = getbyte(); + lq -= 64 + 1; + } + break; + + case M_DHT: + l = getword(); + while (l > 2) { + int hufflen[16], k; + unsigned char huffvals[256]; + + tc = getbyte(); + th = tc & 15; + tc >>= 4; + tt = tc * 2 + th; + if (tc > 1 || th > 1) + return -1; + for (i = 0; i < 16; i++) + hufflen[i] = getbyte(); + l -= 1 + 16; + k = 0; + for (i = 0; i < 16; i++) { + for (j = 0; j < hufflen[i]; j++) + huffvals[k++] = getbyte(); + l -= hufflen[i]; + } + dec_makehuff(dhuff + tt, hufflen, + huffvals); + } + break; + + case M_DRI: + l = getword(); + info.dri = getword(); + break; + + default: + l = getword(); + while (l-- > 2) + getbyte(); + break; + } + } + return 0; +} + +static void dec_initscans(void) +{ + int i; + + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; +} + +int gfx_jpeg_decode(uint8_t *buf, uint8_t *pic, int x0, int x1, int y0, int y1, int color_bits) +{ + int i, j, m, tac, tdc; + int mcusx, mcusy, mx, my; + int max[6]; + int width, height; + int mx0, mx1, my0, my1; + + datap = buf; + if (getbyte() != 0xff) + return ERR_NO_SOI; + if (getbyte() != M_SOI) + return ERR_NO_SOI; + if (readtables(M_SOF0)) + return ERR_BAD_TABLES; + if(info.dri) return ERR_WRONG_MARKER; + + getword(); + i = getbyte(); + if (i != 8) + return ERR_NOT_8BIT; + + height = getword(); + width = getword(); + + info.nc = getbyte(); + if (info.nc > MAXCOMP) + return ERR_TOO_MANY_COMPPS; + for (i = 0; i < info.nc; i++) { + int h, v; + comps[i].cid = getbyte(); + comps[i].hv = getbyte(); + v = comps[i].hv & 15; + h = comps[i].hv >> 4; + comps[i].tq = getbyte(); + if (h > 3 || v > 3) + return ERR_ILLEGAL_HV; + if (comps[i].tq > 3) + return ERR_QUANT_TABLE_SELECTOR; + } + if (readtables(M_SOS)) + return ERR_BAD_TABLES; + getword(); + info.ns = getbyte(); + if (info.ns != 3) + return ERR_NOT_YCBCR_221111; + for (i = 0; i < 3; i++) { + dscans[i].cid = getbyte(); + tdc = getbyte(); + tac = tdc & 15; + tdc >>= 4; + if (tdc > 1 || tac > 1) + return ERR_QUANT_TABLE_SELECTOR; + for (j = 0; j < info.nc; j++) + if (comps[j].cid == dscans[i].cid) + break; + if (j == info.nc) + return ERR_UNKNOWN_CID_IN_SCAN; + dscans[i].hv = comps[j].hv; + dscans[i].tq = comps[j].tq; + dscans[i].hudc.dhuff = dec_huffdc + tdc; + dscans[i].huac.dhuff = dec_huffac + tac; + } + + i = getbyte(); + j = getbyte(); + m = getbyte(); + + if (i != 0 || j != 63 || m != 0) + return ERR_NOT_SEQUENTIAL_DCT; + + if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) + return ERR_NOT_YCBCR_221111; + + if (dscans[0].hv != 0x22 || dscans[1].hv != 0x11 || dscans[2].hv != 0x11) + return ERR_NOT_YCBCR_221111; + + mcusx = (width + 15) >> 4; + mcusy = (height + 15) >> 4; + + mx0 = x0 >> 4; + my0 = y0 >> 4; + + /* inclusive! */ + mx1 = ((x1 + 15) >> 4) - 1; + my1 = ((y1 + 15) >> 4) - 1; + + if(my1 < mcusy) mcusy = my1 + 1; + + idctqtab(quant[dscans[0].tq], decdata.dquant[0]); + idctqtab(quant[dscans[1].tq], decdata.dquant[1]); + idctqtab(quant[dscans[2].tq], decdata.dquant[2]); + initcol(decdata.dquant); + setinput(&in); + + dec_initscans(); + + dscans[0].next = 6 - 4; + dscans[1].next = 6 - 4 - 1; + dscans[2].next = 6 - 4 - 1 - 1; /* 411 encoding */ + for (my = 0; my < mcusy; my++) { + for (mx = 0; mx < mcusx; mx++) { + decode_mcus(&in, decdata.dcts, 6, dscans, max); + + if( + my >= my0 && my <= my1 && + mx >= mx0 && mx <= mx1 + ) { + int i0, i1, j0, j1, yofs; + + idct(decdata.dcts, decdata.out, decdata.dquant[0], IFIX(128.5), max[0]); + idct(decdata.dcts + 64, decdata.out + 64, decdata.dquant[0], IFIX(128.5), max[1]); + idct(decdata.dcts + 128, decdata.out + 128, decdata.dquant[0], IFIX(128.5), max[2]); + idct(decdata.dcts + 192, decdata.out + 192, decdata.dquant[0], IFIX(128.5), max[3]); + idct(decdata.dcts + 256, decdata.out + 256, decdata.dquant[1], IFIX(0.5), max[4]); + idct(decdata.dcts + 320, decdata.out + 320, decdata.dquant[2], IFIX(0.5), max[5]); + + // color_bits * 2: actually 16 * (color_bits / 8) + col221111(decdata.out, tmp_img, color_bits * 2, color_bits); + + j0 = my == my0 ? y0 - 16 * my : 0; + j1 = my == my1 ? y1 - 16 * my : 16; + for(j = j0; j < j1; j++) { + yofs = (16 * my - y0 + j) * (x1 - x0); + i0 = mx == mx0 ? x0 - 16 * mx : 0; + i1 = mx == mx1 ? x1 - 16 * mx : 16; + + switch(color_bits) { + case 8: + for(i = i0; i < i1; i++) { + *((unsigned char *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned char *) tmp_img + 16 * j + i); + } + break; + + case 16: + for(i = i0; i < i1; i++) { + *((unsigned short *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned short *) tmp_img + 16 * j + i); + } + break; + + case 32: + for(i = i0; i < i1; i++) { + *((unsigned *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned *) tmp_img + 16 * j + i); + } + break; + } + } + } + } + } + + return 0; +} + +/****************************************************************/ +/************** huffman decoder ***************/ +/****************************************************************/ + +static int fillbits __P((struct in *, int, unsigned int)); +static int dec_rec2 +__P((struct in *, struct dec_hufftbl *, int *, int, int)); + +static void setinput(in) +struct in *in; +{ + in->left = 0; + in->bits = 0; + in->marker = 0; +} + +static int fillbits(in, le, bi) +struct in *in; +int le; +unsigned int bi; +{ + int b, m; + + if (in->marker) { + if (le <= 16) + in->bits = bi << 16, le += 16; + return le; + } + while (le <= 24) { + b = getbyte(); + if (b == 0xff && (m = getbyte()) != 0) { + in->marker = m; + if (le <= 16) + bi = bi << 16, le += 16; + break; + } + bi = bi << 8 | b; + le += 8; + } + in->bits = bi; /* tmp... 2 return values needed */ + return le; +} + +#define LEBI_DCL int le, bi +#define LEBI_GET(in) (le = in->left, bi = in->bits) +#define LEBI_PUT(in) (in->left = le, in->bits = bi) + +#define GETBITS(in, n) ( \ + (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ + (le -= (n)), \ + bi >> le & ((1 << (n)) - 1) \ +) + +#define UNGETBITS(in, n) ( \ + le += (n) \ +) + + +static int dec_rec2(in, hu, runp, c, i) +struct in *in; +struct dec_hufftbl *hu; +int *runp; +int c, i; +{ + LEBI_DCL; + + LEBI_GET(in); + if (i) { + UNGETBITS(in, i & 127); + *runp = i >> 8 & 15; + i >>= 16; + } else { + for (i = DECBITS; (c = ((c << 1) | GETBITS(in, 1))) >= (hu->maxcode[i]); i++); + if (i >= 16) { + in->marker = M_BADHUFF; + return 0; + } + i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; + *runp = i >> 4; + i &= 15; + } + if (i == 0) { /* sigh, 0xf0 is 11 bit */ + LEBI_PUT(in); + return 0; + } + /* receive part */ + c = GETBITS(in, i); + if (c < (1 << (i - 1))) + c += (-1 << i) + 1; + LEBI_PUT(in); + return c; +} + +#define DEC_REC(in, hu, r, i) ( \ + r = GETBITS(in, DECBITS), \ + i = hu->llvals[r], \ + i & 128 ? \ + ( \ + UNGETBITS(in, i & 127), \ + r = i >> 8 & 15, \ + i >> 16 \ + ) \ + : \ + ( \ + LEBI_PUT(in), \ + i = dec_rec2(in, hu, &r, r, i), \ + LEBI_GET(in), \ + i \ + ) \ +) + +static void decode_mcus(in, dct, n, sc, maxp) +struct in *in; +int *dct; +int n; +struct scan *sc; +int *maxp; +{ + struct dec_hufftbl *hu; + int i, r, t; + LEBI_DCL; + + memset(dct, 0, n * 64 * sizeof(*dct)); + LEBI_GET(in); + while (n-- > 0) { + hu = sc->hudc.dhuff; + *dct++ = (sc->dc += DEC_REC(in, hu, r, t)); + + hu = sc->huac.dhuff; + i = 63; + while (i > 0) { + t = DEC_REC(in, hu, r, t); + if (t == 0 && r == 0) { + dct += i; + break; + } + dct += r; + *dct++ = t; + i -= r + 1; + } + *maxp++ = 64 - i; + if (n == sc->next) + sc++; + } + LEBI_PUT(in); +} + +static void dec_makehuff(hu, hufflen, huffvals) +struct dec_hufftbl *hu; +int *hufflen; +unsigned char *huffvals; +{ + int code, k, i, j, d, x, c, v; + for (i = 0; i < (1 << DECBITS); i++) + hu->llvals[i] = 0; + +/* + * llvals layout: + * + * value v already known, run r, backup u bits: + * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu + * value unknown, size b bits, run r, backup u bits: + * 000000000000bbbb 0000 rrrr 0 uuuuuuu + * value and size unknown: + * 0000000000000000 0000 0000 0 0000000 + */ + code = 0; + k = 0; + for (i = 0; i < 16; i++, code <<= 1) { /* sizes */ + hu->valptr[i] = k; + for (j = 0; j < hufflen[i]; j++) { + hu->vals[k] = *huffvals++; + if (i < DECBITS) { + c = code << (DECBITS - 1 - i); + v = hu->vals[k] & 0x0f; /* size */ + for (d = 1 << (DECBITS - 1 - i); --d >= 0;) { + if (v + i < DECBITS) { /* both fit in table */ + x = d >> (DECBITS - 1 - v - + i); + if (v && x < (1 << (v - 1))) + x += (-1 << v) + 1; + x = x << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1 + v)) | 128; + } else + x = v << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1)); + hu->llvals[c | d] = x; + } + } + code++; + k++; + } + hu->maxcode[i] = code; + } + hu->maxcode[16] = 0x20000; /* always terminate decode */ +} + +/****************************************************************/ +/************** idct ***************/ +/****************************************************************/ + +#define ONE ((PREC)IFIX(1.)) +#define S2 ((PREC)IFIX(0.382683432)) +#define C2 ((PREC)IFIX(0.923879532)) +#define C4 ((PREC)IFIX(0.707106781)) + +#define S22 ((PREC)IFIX(2 * 0.382683432)) +#define C22 ((PREC)IFIX(2 * 0.923879532)) +#define IC4 ((PREC)IFIX(1 / 0.707106781)) + +#define C3IC1 ((PREC)IFIX(0.847759065)) /* c3/c1 */ +#define C5IC1 ((PREC)IFIX(0.566454497)) /* c5/c1 */ +#define C7IC1 ((PREC)IFIX(0.198912367)) /* c7/c1 */ + +#define XPP(a,b) (t = a + b, b = a - b, a = t) +#define XMP(a,b) (t = a - b, b = a + b, a = t) +#define XPM(a,b) (t = a + b, b = b - a, a = t) + +#define ROT(a,b,s,c) ( t = IMULT(a + b, s), \ + a = IMULT(a, c - s) + t, \ + b = IMULT(b, c + s) - t) + +#define IDCT \ +( \ + XPP(t0, t1), \ + XMP(t2, t3), \ + t2 = IMULT(t2, IC4) - t3, \ + XPP(t0, t3), \ + XPP(t1, t2), \ + XMP(t4, t7), \ + XPP(t5, t6), \ + XMP(t5, t7), \ + t5 = IMULT(t5, IC4), \ + ROT(t4, t6, S22, C22),\ + t6 -= t7, \ + t5 -= t6, \ + t4 -= t5, \ + XPP(t0, t7), \ + XPP(t1, t6), \ + XPP(t2, t5), \ + XPP(t3, t4) \ +) + +static unsigned char zig2[64] = { + 0, 2, 3, 9, 10, 20, 21, 35, + 14, 16, 25, 31, 39, 46, 50, 57, + 5, 7, 12, 18, 23, 33, 37, 48, + 27, 29, 41, 44, 52, 55, 59, 62, + 15, 26, 30, 40, 45, 51, 56, 58, + 1, 4, 8, 11, 19, 22, 34, 36, + 28, 42, 43, 53, 54, 60, 61, 63, + 6, 13, 17, 24, 32, 38, 47, 49 +}; + +void idct(in, out, quant, off, max) +int *in; +int *out; +PREC *quant; +PREC off; +int max; +{ + PREC t0, t1, t2, t3, t4, t5, t6, t7, t; + PREC tmp[64], *tmpp; + int i, j; + unsigned char *zig2p; + + t0 = off; + if (max == 1) { + t0 += in[0] * quant[0]; + for (i = 0; i < 64; i++) + out[i] = ITOINT(t0); + return; + } + zig2p = zig2; + tmpp = tmp; + for (i = 0; i < 8; i++) { + j = *zig2p++; + t0 += in[j] * quant[j]; + j = *zig2p++; + t5 = in[j] * quant[j]; + j = *zig2p++; + t2 = in[j] * quant[j]; + j = *zig2p++; + t7 = in[j] * quant[j]; + j = *zig2p++; + t1 = in[j] * quant[j]; + j = *zig2p++; + t4 = in[j] * quant[j]; + j = *zig2p++; + t3 = in[j] * quant[j]; + j = *zig2p++; + t6 = in[j] * quant[j]; + IDCT; + tmpp[0 * 8] = t0; + tmpp[1 * 8] = t1; + tmpp[2 * 8] = t2; + tmpp[3 * 8] = t3; + tmpp[4 * 8] = t4; + tmpp[5 * 8] = t5; + tmpp[6 * 8] = t6; + tmpp[7 * 8] = t7; + tmpp++; + t0 = 0; + } + for (i = 0; i < 8; i++) { + t0 = tmp[8 * i + 0]; + t1 = tmp[8 * i + 1]; + t2 = tmp[8 * i + 2]; + t3 = tmp[8 * i + 3]; + t4 = tmp[8 * i + 4]; + t5 = tmp[8 * i + 5]; + t6 = tmp[8 * i + 6]; + t7 = tmp[8 * i + 7]; + IDCT; + out[8 * i + 0] = ITOINT(t0); + out[8 * i + 1] = ITOINT(t1); + out[8 * i + 2] = ITOINT(t2); + out[8 * i + 3] = ITOINT(t3); + out[8 * i + 4] = ITOINT(t4); + out[8 * i + 5] = ITOINT(t5); + out[8 * i + 6] = ITOINT(t6); + out[8 * i + 7] = ITOINT(t7); + } +} + +static unsigned char zig[64] = { + 0, 1, 5, 6, 14, 15, 27, 28, + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63 +}; + +static PREC aaidct[8] = { + IFIX(0.3535533906), IFIX(0.4903926402), + IFIX(0.4619397663), IFIX(0.4157348062), + IFIX(0.3535533906), IFIX(0.2777851165), + IFIX(0.1913417162), IFIX(0.0975451610) +}; + + +static void idctqtab(qin, qout) +unsigned char *qin; +PREC *qout; +{ + int i, j; + + for (i = 0; i < 8; i++) + for (j = 0; j < 8; j++) + qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * + IMULT(aaidct[i], aaidct[j]); +} + +static void scaleidctqtab(q, sc) +PREC *q; +PREC sc; +{ + int i; + + for (i = 0; i < 64; i++) + q[i] = IMULT(q[i], sc); +} + +/****************************************************************/ +/************** color decoder ***************/ +/****************************************************************/ + +/* + * YCbCr Color transformation: + * + * y:0..255 Cb:-128..127 Cr:-128..127 + * + * R = Y + 1.40200 * Cr + * G = Y - 0.34414 * Cb - 0.71414 * Cr + * B = Y + 1.77200 * Cb + * + * => + * Cr *= 1.40200; + * Cb *= 1.77200; + * Cg = 0.19421 * Cb + .50937 * Cr; + * R = Y + Cr; + * G = Y - Cg; + * B = Y + Cb; + * + * => + * Cg = (50 * Cb + 130 * Cr + 128) >> 8; + */ + +static void initcol(q) +PREC q[][64]; +{ + scaleidctqtab(q[1], IFIX(1.77200)); + scaleidctqtab(q[2], IFIX(1.40200)); +} + +/* This is optimized for the stupid sun SUNWspro compiler. */ +#define STORECLAMP(a,x) \ +( \ + (a) = (x), \ + (unsigned int)(x) >= 256 ? \ + ((a) = (x) < 0 ? 0 : 255) \ + : \ + 0 \ +) + +#define CLAMP(x) ((unsigned int)(x) >= 256 ? ((x) < 0 ? 0 : 255) : (x)) + +#define CBCRCG(xin) \ +( \ + cb = outc[0 + xin], \ + cr = outc[64 + xin], \ + cg = (50 * cb + 130 * cr + 128) >> 8 \ +) + +#define PIC(yin, xin, p, xout) \ +( \ + y = outy[(yin) * 8 + xin], \ + STORECLAMP(p[(xout) * 4 + 0], y + cb), \ + STORECLAMP(p[(xout) * 4 + 1], y - cg), \ + STORECLAMP(p[(xout) * 4 + 2], y + cr) \ +) + +#define PIC221111x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0), \ + PIC(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1), \ + PIC(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0), \ + PIC(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1) \ +) + +#define PIC_16(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + *(unsigned short *) (p + (xout) * 2) = store_16(CLAMP(y + cr), CLAMP(y - cg), CLAMP(y + cb), add) \ +) + +#define PIC221111_16x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC_16(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0, 3 * 0x55), \ + PIC_16(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1, 0 * 0x55), \ + PIC_16(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0, 1 * 0x55), \ + PIC_16(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1, 2 * 0x55) \ +) + +#define PIC_8(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + p[(xout)] = store_8(CLAMP(y + cr), CLAMP(y - cg), CLAMP(y + cb), add) \ +) + +#define PIC221111_8x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC_8(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0, 3 * 0x55), \ + PIC_8(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1, 0 * 0x55), \ + PIC_8(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0, 1 * 0x55), \ + PIC_8(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1, 2 * 0x55) \ +) + + +static unsigned store_16(unsigned r, unsigned g, unsigned b, unsigned add) +{ + unsigned rgb; + + rgb = (((r << 5) - r + add) >> 8) << 11; + rgb += (((g << 6) - g + add) >> 8) << 5; + rgb += ((b << 5) - b + add) >> 8; + + return rgb; +} + +static unsigned store_8(unsigned r, unsigned g, unsigned b, unsigned add) +{ + unsigned rgb; + +#if 0 + r = ((r << 2) - r + add) >> 8; + g = ((g << 3) - g + add) >> 8; + b = ((b << 3) - b + add) >> 8; + + rgb = (r << 6) + (g << 3) + b; +#endif + + rgb = (((r << 2) - r + add) >> 8) << 6; + rgb += (((g << 3) - g + add) >> 8) << 3; + rgb += ((b << 3) - b + add) >> 8; + + return rgb; +} + +static void col221111(int *out, unsigned char *pic, int width, int bits) +{ + int i, j, k, k_4, k_3; + unsigned char *pic0, *pic1; + int *outy, *outc; + int cr, cg, cb, y; + + pic0 = pic; + pic1 = pic + width; + outy = out; + outc = out + 64 * 4; + for(i = 2; i > 0; i--) { + for(j = 4; j > 0; j--) { + for(k = 0; k < 8; k++) { + k_4 = (k >> 2) << 3; + k_3 = (k & 3) << 1; + switch(bits) { + case 8: + PIC221111_8x(k, k_4, k_3); + break; + case 16: + PIC221111_16x(k, k_4, k_3); + break; + case 32: + PIC221111x(k, k_4, k_3); + break; + } + } + outc += 8; + outy += 16; + pic0 += 2 * width; + pic1 += 2 * width; + } + outy += 64 * 2 - 16 * 4; + } +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +unsigned gfx_jpeg_getsize(uint8_t *buf) +{ + unsigned u; + + datap = buf; + getbyte(); getbyte(); + if(readtables(M_SOF0)) return 0; + getword(); getbyte(); + + u = getword() << 16; + u += getword(); + + return u; +} diff --git a/gfxboot_lib.c b/gfxboot_lib.c new file mode 100644 index 0000000..0490169 --- /dev/null +++ b/gfxboot_lib.c @@ -0,0 +1,316 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// lib functions +// + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_show_error() +{ + if(gfxboot_data->vm.error.id) { +#ifdef FULL_ERROR + gfxboot_log( + "error %d (%s), ip = %s, src = %s:%d\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfx_debug_get_ip(), + gfxboot_data->vm.error.src_file, + gfxboot_data->vm.error.src_line + ); +#else + gfxboot_log( + "error %d (%s), ip = %s\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfx_debug_get_ip() + ); +#endif + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +const char *gfx_error_msg(error_id_t id) +{ + static const char *error_names[] = { + [err_ok] = "ok", + [err_invalid_code] = "invalid code", + [err_invalid_instruction] = "invalid instruction", + [err_no_array_start] = "no array start", + [err_no_hash_start] = "no hash start", + [err_no_memory] = "no memory", + [err_invalid_hash_key] = "invalid hash key", + [err_stack_underflow] = "stack underflow", + [err_internal] = "internal", + [err_no_loop_context] = "no loop context", + [err_invalid_range] = "invalid range", + [err_invalid_data] = "invalid data", + [err_readonly] = "readonly", + [err_invalid_arguments] = "invalid arguments", + [err_div_by_zero] = "div by zero", + }; + + if(id < sizeof error_names/sizeof *error_names) { + return error_names[id]; + } + else { + return "weird error"; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_read_le32(const void *p) +{ + const uint8_t *s = p; + + return (uint32_t) s[0] + ((uint32_t) s[1] << 8) + ((uint32_t) s[2] << 16) + ((uint32_t) s[3] << 24); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_utf8_enc(unsigned uc) +{ + static char buf[7]; + char *s = buf; + + uc &= 0x7fffffff; + + if(uc < 0x80) { // 7 bits + *s++ = uc; + } + else { + if(uc < (1 << 11)) { // 11 (5 + 6) bits + *s++ = 0xc0 + (uc >> 6); + goto utf8_encode_2; + } + else if(uc < (1 << 16)) { // 16 (4 + 6 + 6) bits + *s++ = 0xe0 + (uc >> 12); + goto utf8_encode_3; + } + else if(uc < (1 << 21)) { // 21 (3 + 6 + 6 + 6) bits + *s++ = 0xf0 + (uc >> 18); + goto utf8_encode_4; + } + else if(uc < (1 << 26)) { // 26 (2 + 6 + 6 + 6 + 6) bits + *s++ = 0xf8 + (uc >> 24); + goto utf8_encode_5; + } + else { // 31 (1 + 6 + 6 + 6 + 6 + 6) bits + *s++ = 0xfc + (uc >> 30); + } + + *s++ = 0x80 + ((uc >> 24) & ((1 << 6) - 1)); + + utf8_encode_5: + *s++ = 0x80 + ((uc >> 18) & ((1 << 6) - 1)); + + utf8_encode_4: + *s++ = 0x80 + ((uc >> 12) & ((1 << 6) - 1)); + + utf8_encode_3: + *s++ = 0x80 + ((uc >> 6) & ((1 << 6) - 1)); + + utf8_encode_2: + *s++ = 0x80 + (uc & ((1 << 6) - 1)); + } + + *s = 0; + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decode utf8 sequence. +// +// a) if s points to a valid utf8 sequence: +// - returns unicode char (a non-negative number) +// - s is updated to point past utf8 char +// +// b) if s does not point to a valid utf8 sequence +// - returns negated first byte +// - s is incremented by 1 +// +int gfx_utf8_dec(char **s, unsigned *len) +{ + unsigned char *p; + int c; + unsigned u, l, l0; + + if(!s || (!*s && !*len)) return 0; + + p = (uint8_t *) *s; + + u = *p++; + if(len) (*len)--; + + if(u >= 0x80) { + if(u < 0xc0 || u >= 0xfe) { + *s = (char *) p; + return -(int) u; + } + l = 1; + if(u < 0xe0) { + c = u & 0x1f; + } + else if(u < 0xf0) { + c = u & 0x0f; + l = 2; + } + else if(u < 0xf8) { + c = u & 0x07; + l = 3; + } + else if(u < 0xfc) { + c = u & 0x03; + l = 4; + } + else if(u < 0xfe) { + c = u & 0x01; + l = 5; + } + if(len && l > *len) { + *s = (char *) p; + return -(int) u; + } + l0 = l; + while(l--) { + u = *p++; + if(u < 0x80 || u >= 0xc0) { + u = (uint8_t) **s; + (*s)++; + if(len) (*len)--; + return -(int) u; + } + c = (c << 6) + ((int) u & 0x3f); + } + if(len) *len -= l0; + } + else { + c = (int) u; + } + + *s = (char *) p; + + return c; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_read_file(char *name) +{ + obj_id_t id = 0; + void *buf = 0; + + int size = gfxboot_sys_read_file(name, &buf); + + if(size >= 0 && buf) { + id = gfx_obj_mem_new((unsigned) size); + + if(size) { + data_t *mem = gfx_obj_mem_ptr(id); + + if(mem) gfx_memcpy(mem->ptr, buf, (unsigned) size); + + gfxboot_sys_free(buf); + } + } + + gfxboot_log("read(%s): id = #%08x\n", name, id); + + return id; +} + + +#if INCLUDE_DIV64 +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static uint64_t __udivmoddi4(uint64_t num, uint64_t den, int mod) __attribute__((noinline)); +uint64_t __udivdi3 (uint64_t a, uint64_t b); +uint64_t __umoddi3 (uint64_t a, uint64_t b); +int64_t __divdi3 (int64_t a, int64_t b); +int64_t __moddi3 (int64_t a, int64_t b); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __udivmoddi4(uint64_t num, uint64_t den, int mod) +{ + if(num < (1llu << 32) && den < (1llu << 32)) { + return mod ? ((uint32_t) num % (uint32_t) den) : ((uint32_t) num / (uint32_t) den); + } + + uint64_t bit = 1, res = 0; + + while(den < num && bit && (den & (1llu << 63)) == 0) { + den <<= 1; + bit <<= 1; + } + + while(bit) { + if(num >= den) { + num -= den; + res |= bit; + } + bit >>= 1; + den >>= 1; + } + + return mod ? num : res; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __udivdi3(uint64_t a, uint64_t b) +{ + return __udivmoddi4(a, b, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __umoddi3 (uint64_t a, uint64_t b) +{ + return __udivmoddi4(a, b, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t __divdi3(int64_t a, int64_t b) +{ + unsigned sign = 0; + + if(a < 0) { + a = -a; + sign = 1; + } + + if(b < 0) { + b = -b; + sign ^= 1; + } + + int64_t r = (int64_t) __udivmoddi4((uint64_t) a, (uint64_t) b, 0); + + return sign ? -r : r; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t __moddi3(int64_t a, int64_t b) +{ + int64_t r; + + if(b < 0) b = -b; + + if(a < 0) { + r = - (int64_t) __udivmoddi4((uint64_t) (-a), (uint64_t) b, 1); + } + else { + r = (int64_t) __udivmoddi4((uint64_t) a, (uint64_t) b, 1); + } + + return r; +} +#endif diff --git a/gfxboot_main.c b/gfxboot_main.c new file mode 100644 index 0000000..5cc4ce4 --- /dev/null +++ b/gfxboot_main.c @@ -0,0 +1,507 @@ +#include + +static uint8_t _console_font[4947]; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_init() +{ + gfxboot_log("gfxboot_init\n"); + + gfxboot_log("data_t = %d, obj_t = %d\n", (int) sizeof (data_t), (int) sizeof (obj_t)); + + if(gfx_malloc_init()) return 1; + + if(gfx_obj_init()) return 1; + + // setup virtual fb as canvas object + gfxboot_data->screen.virt_id = gfx_obj_canvas_new(gfxboot_data->screen.real.width, gfxboot_data->screen.real.height); + if(!gfxboot_data->screen.virt_id) return 1; + + gfx_vm_status_dump(); + + canvas_t *canvas = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + + gfxboot_data->gstate_id = gfx_obj_gstate_new(); + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gstate->canvas_id = gfx_obj_ref_inc(gfxboot_data->screen.virt_id); + gstate->region = (area_t) { .width = canvas->width, .height = canvas->height }; + gstate->pos = (area_t) {0, 0, 0, 0}; + gstate->color = COLOR(0x00, 0xff, 0xff, 0xff); + gstate->bg_color = COLOR(0xff, 0x00, 0x00, 0x00); + } + + gfxboot_data->console.gstate_id = gfx_obj_gstate_new(); + gstate_t *console_gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(console_gstate) { + console_gstate->canvas_id = gfx_obj_ref_inc(gfxboot_data->screen.virt_id); + console_gstate->region = (area_t) { .width = canvas->width, .height = canvas->height }; + console_gstate->pos = (area_t) {0, 0, 0, 0}; + console_gstate->color = COLOR(0x00, 0xff, 0xff, 0xff); + console_gstate->bg_color = COLOR(0x00, 0x24, 0x16, 0x32); + } + + if(!gfx_setup_dict()) return 1; + + // setup compiled-in console font + obj_id_t console_font_data_id = gfx_obj_const_mem_nofree_new(_console_font, sizeof _console_font, 0, 0); + console_gstate->font_id = gfx_obj_font_open(console_font_data_id); + + // font structure itself holds ref to data + gfx_obj_ref_dec(console_font_data_id); + + area_t area = gfx_font_dim(console_gstate->font_id); + console_gstate->pos.width = area.width; + console_gstate->pos.height = area.height; + + int t_width = console_gstate->pos.width * 80; + int t_height = console_gstate->pos.height * 25; + if( + console_gstate->region.width >= t_width && + console_gstate->region.height >= t_height + ) { + console_gstate->region.x = (console_gstate->region.width - t_width) / 2; + console_gstate->region.y = (console_gstate->region.height - t_height) / 2; + console_gstate->region.width = t_width; + console_gstate->region.height = t_height; + console_gstate->pos.y = t_height - console_gstate->pos.height; + } + + // load main program + obj_id_t pfile_id = gfx_read_file("main.gc"); + obj_t *pfile_ptr = gfx_obj_ptr(pfile_id); + + if(pfile_ptr) { + pfile_ptr->flags.ro = 1; + } + else { + gfxboot_log("no program to run - aborting\n"); + return 1; + } + + if(!gfx_program_init(pfile_id)) { + gfxboot_log("failed to setup prgram\n"); + return 1; + } + + gfx_obj_ref_dec(pfile_id); + +#if 0 + gfx_console_putc_xy(200, 100, L'€'); +#endif + + // gfx_obj_asciiz_new("Foo Bar"); + + // gfxboot_data->vm.debug.trace_ip = 1; + // gfx_program_run(); + gfx_show_error(); + + // gfx_obj_dump(OBJ_ID(0, 1), (dump_style_t) { .dump = 1 }); + + return 0; + + // return gfxboot_data->vm.error.id ? 1 : 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_debug_command(char *str) +{ + if(str) gfx_debug_cmd(str); +} + + +/* + if ((action & 0x01)) menu_fini (); + if ((action & 0x02)) *auto_boot = 1; + if ((action & 0x04)) grub_cmdline_run (1); + if ((action & 0x08)) goto refresh; + if ((action & 0x10)) return action >> 8; +*/ +int gfxboot_process_key(unsigned key) +{ + static int x = 0, y = 0; + int action = 0; + + gfxboot_debug(2, 2, "gfxboot_process_key: key = 0x%08x\n", key); + + if(gfxboot_data->vm.debug.console.show) { + gfx_program_debug(key); + + return action; + } + else { + if(key == 0x04) { // '^D' + gfx_program_debug_on_off(1); + return action; + } + + gfx_program_process_key(key); + } + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gfx_rect(gstate, x, y, 100, 20, (40 + y) * 0x7834242296 * (x + 1)); + + y += 20; + + if(y >= gfxboot_data->screen.real.height) { + y = 0; + x += 120; + x = x % gfxboot_data->screen.real.width; + } + + switch(key) { + case '0'...'9': + gfxboot_data->menu.entry = (int) key - '0'; + gfxboot_log("menu.entry = %d\n", gfxboot_data->menu.entry); + break; + + case 'b': + action = (gfxboot_data->menu.entry << 8) + 0x11; + gfxboot_log("booting entry %d\n", gfxboot_data->menu.entry); + break; + + case 'c': + gfxboot_log("running cmdline\n"); + action = 0x04; + break; + + case 'x': + action = (-1 << 8) + 0x10 + 1; + break; + } + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_timeout() +{ + gfxboot_log( + "gfxboot_timeout: max = %d, current = %d\n", + gfxboot_data->menu.timeout.max, + gfxboot_data->menu.timeout.current + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// lat9v-16.psfu +// +static uint8_t _console_font[4947] = { + 0x72, 0xb5, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xc3, 0x99, 0x99, 0xf3, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6e, 0xf8, 0xd8, 0xd8, 0xdc, 0xd8, 0xd8, 0xd8, 0xf8, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xdb, 0xdb, 0xdf, 0xd8, 0xdb, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x80, 0xe0, 0x80, 0x80, 0x00, 0x3e, 0x20, 0x38, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, 0x3c, 0x22, 0x3c, 0x24, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x00, 0x3e, 0x20, 0x38, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, + 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, + 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x88, 0xc8, 0xa8, 0x98, 0x88, 0x00, 0x20, 0x20, 0x20, 0x20, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0xe0, 0x38, 0x0e, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x38, 0x0e, 0x38, 0xe0, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0c, 0xfe, 0x18, 0x30, 0xfe, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x7e, 0xfe, 0x7e, 0x1e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfc, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, 0xfe, 0x6c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x36, 0x66, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x10, 0x7c, 0xd6, 0xd0, 0xd0, 0x7c, 0x16, 0x16, 0xd6, 0x7c, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x64, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0xee, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0x00, 0x30, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x60, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6f, 0x60, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x60, 0x6f, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6f, 0x60, 0x6f, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xec, 0x0c, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xef, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0xec, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xec, 0x0c, 0xec, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xef, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xef, 0x00, 0xef, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x7c, 0xd6, 0xd0, 0xd0, 0xd0, 0xd6, 0x7c, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x60, 0x60, 0xf0, 0x60, 0x60, 0x66, 0xf6, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x32, 0x60, 0x60, 0xfc, 0x60, 0xfc, 0x60, 0x60, 0x32, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x38, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x42, 0x99, 0xa5, 0xa1, 0xa5, 0x99, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x42, 0xb9, 0xa5, 0xb9, 0xa5, 0xa5, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x18, 0x30, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x18, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x38, 0x00, 0xfe, 0xc6, 0x8c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf6, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x00, 0x7f, 0xd6, 0xd6, 0x76, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6c, 0x38, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x70, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0xcc, 0xcc, 0xcc, 0xcf, 0xcf, 0xcc, 0xcc, 0xcc, 0x77, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xdb, 0xdb, 0xdf, 0xd8, 0xdb, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x60, 0xc6, 0xc6, 0x7c, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x38, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x78, 0xd8, 0xd8, 0xfc, 0xd8, 0xd8, 0xd8, 0xd8, 0xde, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x66, 0x3c, 0x00, + 0x60, 0x30, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0c, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xc6, 0xce, 0xce, 0xde, 0xf6, 0xe6, 0xe6, 0xc6, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0c, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xcc, 0xc6, 0xc6, 0xc6, 0xd6, 0xdc, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0x1b, 0x7f, 0xd8, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x6c, 0x38, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x30, 0x78, 0x0c, 0x7e, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xce, 0xde, 0xfe, 0xf6, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0xef, 0xbf, 0xbd, 0xff, 0xe2, 0x89, 0x88, 0xff, 0xc5, 0x92, 0xff, 0xc5, 0x93, 0xff, 0xe2, 0x97, + 0x86, 0xff, 0xe2, 0x90, 0x89, 0xff, 0xe2, 0x90, 0x8c, 0xff, 0xe2, 0x90, 0x8d, 0xff, 0xe2, 0x90, + 0x8a, 0xff, 0xe2, 0x96, 0x91, 0xff, 0xe2, 0x96, 0x92, 0xff, 0xe2, 0x96, 0x93, 0xff, 0xe2, 0x96, + 0x88, 0xff, 0xe2, 0x96, 0x84, 0xff, 0xe2, 0x96, 0x80, 0xff, 0xe2, 0x96, 0x8c, 0xff, 0xe2, 0x96, + 0x90, 0xff, 0xe2, 0x90, 0xa4, 0xff, 0xe2, 0x90, 0x8b, 0xff, 0xe2, 0x89, 0xa4, 0xff, 0xe2, 0x89, + 0xa5, 0xff, 0xe2, 0x89, 0xa0, 0xff, 0xe2, 0x97, 0x80, 0xff, 0xe2, 0x96, 0xb6, 0xff, 0xe2, 0x86, + 0x91, 0xff, 0xe2, 0x86, 0x93, 0xff, 0xe2, 0x86, 0x92, 0xff, 0xe2, 0x86, 0x90, 0xff, 0xe2, 0x86, + 0x95, 0xff, 0xe2, 0x86, 0x94, 0xff, 0xe2, 0x86, 0xb5, 0xff, 0xcf, 0x80, 0xff, 0x20, 0xc2, 0xa0, + 0xe2, 0x80, 0x80, 0xe2, 0x80, 0x81, 0xe2, 0x80, 0x82, 0xe2, 0x80, 0x83, 0xe2, 0x80, 0x84, 0xe2, + 0x80, 0x85, 0xe2, 0x80, 0x86, 0xe2, 0x80, 0x87, 0xe2, 0x80, 0x88, 0xe2, 0x80, 0x89, 0xe2, 0x80, + 0x8a, 0xe2, 0x80, 0xaf, 0xff, 0x21, 0xff, 0x22, 0xff, 0x23, 0xff, 0x24, 0xff, 0x25, 0xff, 0x26, + 0xff, 0x27, 0xff, 0x28, 0xff, 0x29, 0xff, 0x2a, 0xff, 0x2b, 0xff, 0x2c, 0xff, 0x2d, 0xff, 0x2e, + 0xff, 0x2f, 0xff, 0x30, 0xff, 0x31, 0xff, 0x32, 0xff, 0x33, 0xff, 0x34, 0xff, 0x35, 0xff, 0x36, + 0xff, 0x37, 0xff, 0x38, 0xff, 0x39, 0xff, 0x3a, 0xff, 0x3b, 0xff, 0x3c, 0xff, 0x3d, 0xff, 0x3e, + 0xff, 0x3f, 0xff, 0x40, 0xff, 0x41, 0xff, 0x42, 0xff, 0x43, 0xff, 0x44, 0xff, 0x45, 0xff, 0x46, + 0xff, 0x47, 0xff, 0x48, 0xff, 0x49, 0xff, 0x4a, 0xff, 0x4b, 0xe2, 0x84, 0xaa, 0xff, 0x4c, 0xff, + 0x4d, 0xff, 0x4e, 0xff, 0x4f, 0xff, 0x50, 0xff, 0x51, 0xff, 0x52, 0xff, 0x53, 0xff, 0x54, 0xff, + 0x55, 0xff, 0x56, 0xff, 0x57, 0xff, 0x58, 0xff, 0x59, 0xff, 0x5a, 0xff, 0x5b, 0xff, 0x5c, 0xff, + 0x5d, 0xff, 0x5e, 0xff, 0x5f, 0xef, 0xa0, 0x84, 0xff, 0x60, 0xff, 0x61, 0xff, 0x62, 0xff, 0x63, + 0xff, 0x64, 0xff, 0x65, 0xff, 0x66, 0xff, 0x67, 0xff, 0x68, 0xff, 0x69, 0xff, 0x6a, 0xff, 0x6b, + 0xff, 0x6c, 0xff, 0x6d, 0xff, 0x6e, 0xff, 0x6f, 0xff, 0x70, 0xff, 0x71, 0xff, 0x72, 0xff, 0x73, + 0xff, 0x74, 0xff, 0x75, 0xff, 0x76, 0xff, 0x77, 0xff, 0x78, 0xff, 0x79, 0xff, 0x7a, 0xff, 0x7b, + 0xff, 0x7c, 0xff, 0x7d, 0xff, 0x7e, 0xff, 0xc5, 0xb8, 0xff, 0xef, 0xa0, 0x81, 0xff, 0xe2, 0x95, + 0xb5, 0xff, 0xe2, 0x95, 0xb6, 0xff, 0xe2, 0x94, 0x94, 0xff, 0xe2, 0x95, 0xb7, 0xff, 0xe2, 0x94, + 0x82, 0xff, 0xe2, 0x94, 0x8c, 0xff, 0xe2, 0x94, 0x9c, 0xff, 0xe2, 0x95, 0xb4, 0xff, 0xe2, 0x94, + 0x98, 0xff, 0xe2, 0x94, 0x80, 0xff, 0xe2, 0x94, 0xb4, 0xff, 0xe2, 0x94, 0x90, 0xff, 0xe2, 0x94, + 0xa4, 0xff, 0xe2, 0x94, 0xac, 0xff, 0xe2, 0x94, 0xbc, 0xff, 0xef, 0xa0, 0x83, 0xff, 0xe2, 0x95, + 0xb9, 0xff, 0xe2, 0x95, 0xba, 0xff, 0xe2, 0x94, 0x97, 0xe2, 0x95, 0x9a, 0xff, 0xe2, 0x95, 0xbb, + 0xff, 0xe2, 0x94, 0x83, 0xe2, 0x95, 0x91, 0xff, 0xe2, 0x94, 0x8f, 0xe2, 0x95, 0x94, 0xff, 0xe2, + 0x94, 0xa3, 0xe2, 0x95, 0xa0, 0xff, 0xe2, 0x95, 0xb8, 0xff, 0xe2, 0x94, 0x9b, 0xe2, 0x95, 0x9d, + 0xff, 0xe2, 0x94, 0x81, 0xe2, 0x95, 0x90, 0xff, 0xe2, 0x94, 0xbb, 0xe2, 0x95, 0xa9, 0xff, 0xe2, + 0x94, 0x93, 0xe2, 0x95, 0x97, 0xff, 0xe2, 0x95, 0xa3, 0xe2, 0x94, 0xab, 0xff, 0xe2, 0x94, 0xb3, + 0xe2, 0x95, 0xa6, 0xff, 0xe2, 0x95, 0x8b, 0xe2, 0x95, 0xac, 0xff, 0xe2, 0x90, 0xa3, 0xff, 0xc2, + 0xa1, 0xff, 0xc2, 0xa2, 0xff, 0xc2, 0xa3, 0xff, 0xe2, 0x82, 0xac, 0xff, 0xc2, 0xa5, 0xff, 0xc5, + 0xa0, 0xff, 0xc2, 0xa7, 0xff, 0xc5, 0xa1, 0xff, 0xc2, 0xa9, 0xff, 0xc2, 0xaa, 0xff, 0xc2, 0xab, + 0xff, 0xc2, 0xac, 0xff, 0xc2, 0xad, 0xff, 0xc2, 0xae, 0xff, 0xc2, 0xaf, 0xef, 0xa0, 0x80, 0xff, + 0xc2, 0xb0, 0xff, 0xc2, 0xb1, 0xff, 0xc2, 0xb2, 0xff, 0xc2, 0xb3, 0xff, 0xc5, 0xbd, 0xff, 0xc2, + 0xb5, 0xff, 0xc2, 0xb6, 0xff, 0xc2, 0xb7, 0xff, 0xc5, 0xbe, 0xff, 0xc2, 0xb9, 0xff, 0xc2, 0xba, + 0xff, 0xc2, 0xbb, 0xff, 0xc5, 0x92, 0xff, 0xc5, 0x93, 0xff, 0xc5, 0xb8, 0xff, 0xc2, 0xbf, 0xff, + 0xc3, 0x80, 0xff, 0xc3, 0x81, 0xff, 0xc3, 0x82, 0xff, 0xc3, 0x83, 0xff, 0xc3, 0x84, 0xff, 0xc3, + 0x85, 0xe2, 0x84, 0xab, 0xff, 0xc3, 0x86, 0xff, 0xc3, 0x87, 0xff, 0xc3, 0x88, 0xff, 0xc3, 0x89, + 0xff, 0xc3, 0x8a, 0xff, 0xc3, 0x8b, 0xff, 0xc3, 0x8c, 0xff, 0xc3, 0x8d, 0xff, 0xc3, 0x8e, 0xff, + 0xc3, 0x8f, 0xff, 0xc3, 0x90, 0xff, 0xc3, 0x91, 0xff, 0xc3, 0x92, 0xff, 0xc3, 0x93, 0xff, 0xc3, + 0x94, 0xff, 0xc3, 0x95, 0xff, 0xc3, 0x96, 0xff, 0xc3, 0x97, 0xff, 0xc3, 0x98, 0xff, 0xc3, 0x99, + 0xff, 0xc3, 0x9a, 0xff, 0xc3, 0x9b, 0xff, 0xc3, 0x9c, 0xff, 0xc3, 0x9d, 0xff, 0xc3, 0x9e, 0xff, + 0xc3, 0x9f, 0xff, 0xc3, 0xa0, 0xff, 0xc3, 0xa1, 0xff, 0xc3, 0xa2, 0xff, 0xc3, 0xa3, 0xff, 0xc3, + 0xa4, 0xff, 0xc3, 0xa5, 0xff, 0xc3, 0xa6, 0xff, 0xc3, 0xa7, 0xff, 0xc3, 0xa8, 0xff, 0xc3, 0xa9, + 0xff, 0xc3, 0xaa, 0xff, 0xc3, 0xab, 0xff, 0xc3, 0xac, 0xff, 0xc3, 0xad, 0xff, 0xc3, 0xae, 0xff, + 0xc3, 0xaf, 0xff, 0xc3, 0xb0, 0xff, 0xc3, 0xb1, 0xff, 0xc3, 0xb2, 0xff, 0xc3, 0xb3, 0xff, 0xc3, + 0xb4, 0xff, 0xc3, 0xb5, 0xff, 0xc3, 0xb6, 0xff, 0xc3, 0xb7, 0xff, 0xc3, 0xb8, 0xff, 0xc3, 0xb9, + 0xff, 0xc3, 0xba, 0xff, 0xc3, 0xbb, 0xff, 0xc3, 0xbc, 0xff, 0xc3, 0xbd, 0xff, 0xc3, 0xbe, 0xff, + 0xc3, 0xbf, 0xff +}; diff --git a/gfxboot_malloc.c b/gfxboot_malloc.c new file mode 100644 index 0000000..f1ec1d6 --- /dev/null +++ b/gfxboot_malloc.c @@ -0,0 +1,140 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// malloc functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_malloc_init() +{ + malloc_header_t *m = gfxboot_data->vm.mem.ptr; + + if(!m || gfxboot_data->vm.mem.size < 0x1000) return 1; + + m->next = gfxboot_data->vm.mem.size; + m->id = 0; + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_malloc_dump(dump_style_t style) +{ + uint8_t *p, *p_start, *p_end; + malloc_header_t *m; + unsigned idx, x, g; + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + gfxboot_log("=== memory dump ===\n"); + + if(!p_start) { + gfxboot_log(" no memory\n"); + + return; + } + + for(idx = 0, p = p_start; p >= p_start && p < p_end; p += m->next, idx++) { + if(style.max && idx >= style.max) break; + m = (malloc_header_t *) p; + x = OBJ_ID2IDX(m->id); + g = OBJ_ID2GEN(m->id); + gfxboot_log("%4u: %4u.%02x, ", idx, x, g); + if(gfxboot_data->vm.debug.show_pointer) { + gfxboot_log("%p", m + 1); + } + else { + gfxboot_log("0x%08x", (int) (p - p_start) + (int) sizeof (malloc_header_t)); + } + gfxboot_log("[%8d]\n", (int) (m->next - sizeof (malloc_header_t))); + if(m->next <= sizeof (malloc_header_t)) break; + } + + if(!style.max && p != p_end) { + gfxboot_log(" -- malloc chain corrupt --\n"); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void *gfx_malloc(uint32_t size, uint32_t id) +{ + uint8_t *p, *p_start, *p_end; + malloc_header_t *m; + void *mem = 0; + + if(id == 0) id = 1; // ensure it's not 0 + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + if(size > gfxboot_data->vm.mem.size) return mem; + + // size 0: return a valid pointer that we won't try to free + if(size == 0) return p_end; + + size += sizeof (malloc_header_t); // include header size + size = (size + 3) & ~3U; // align a bit + + for(p = p_start; p >= p_start && p < p_end; p += m->next) { + m = (malloc_header_t *) p; + if(m->id == 0 && m->next >= size) { + m->id = id; + mem = p + sizeof (malloc_header_t); + gfx_memset(mem, 0, size - sizeof (malloc_header_t)); + if(m->next > size + sizeof (malloc_header_t)) { + uint32_t n = m->next - size; + m->next = size; + m = (malloc_header_t *) (p + size); + m->id = 0; + m->next = n; + } + break; + } + } + + return mem; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_free(void *ptr) +{ + uint8_t *p, *p_start, *p_end, *p_last, *mem = ptr; + malloc_header_t *m, *m_last, *m_next; + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + if(!mem || mem < p_start || mem >= p_end) return; + + // p < mem instead of 'p < p_end' for an early exit + for(p = p_last = p_start; p >= p_start && p < mem; p_last = p, p += m->next) { + m = (malloc_header_t *) p; + + if(mem == p + sizeof (malloc_header_t)) { + if(m->id == 0) return; // already free + + m->id = 0; // mark as free + + if(p + m->next < p_end) { // not last block + m_next = (malloc_header_t *) (p + m->next); + if(m_next->id == 0) { // join next + current block + m->next += m_next->next; + } + } + + if(p_last != p) { // not first block + m_last = (malloc_header_t *) p_last; + if(m_last->id == 0) { // join last + current block + m_last->next += m->next; + } + } + } + } +} + + diff --git a/gfxboot_mem.c b/gfxboot_mem.c new file mode 100644 index 0000000..093e469 --- /dev/null +++ b/gfxboot_mem.c @@ -0,0 +1,302 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// mem + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_new(uint32_t size) +{ + return gfx_obj_alloc(OTYPE_MEM, size); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +data_t *gfx_obj_mem_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM) return 0; + + return &ptr->data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +data_t *gfx_obj_mem_subtype_ptr(obj_id_t id, uint8_t subtype) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM || ptr->sub_type != subtype) return 0; + + return &ptr->data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_const_mem_nofree_new(const uint8_t *str, unsigned len, uint8_t sub_type, obj_id_t ref_id) +{ + obj_id_t id = 0; + + if(str) { + // avoid recursive references, always point to original object + if(ref_id) { + obj_t *ptr; + while((ptr = gfx_obj_ptr(ref_id))) { + if(ptr->base_type != OTYPE_MEM || !ptr->data.ref_id) break; + ref_id = ptr->data.ref_id; + } + } + + id = gfx_obj_new(OTYPE_MEM); + obj_t *optr = gfx_obj_ptr(id); + if(optr) { + optr->data.ptr = (uint8_t *) str; + optr->data.size = len; + optr->data.ref_id = ref_id; + optr->flags.ro = 1; + optr->flags.nofree = 1; + optr->sub_type = sub_type; + + gfx_obj_ref_inc(ref_id); + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_asciiz_new(const char *str) +{ + return gfx_obj_const_mem_nofree_new((uint8_t *) str, gfx_strlen(str), t_string, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_dup(obj_id_t id, unsigned extra_bytes) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM) return 0; + + obj_id_t new_id = gfx_obj_new(OTYPE_MEM); + obj_t *new_ptr = gfx_obj_ptr(new_id); + + if(new_ptr) { + data_t *data = OBJ_DATA_FROM_PTR(ptr); + if((new_ptr->data.ptr = gfx_malloc(data->size + extra_bytes, new_id))) { + new_ptr->data.size = data->size + extra_bytes; + new_ptr->sub_type = ptr->sub_type; + gfx_memcpy(new_ptr->data.ptr, data->ptr, data->size); + } + else { + // delete, keep generation counter + *new_ptr = (obj_t) { gen:new_ptr->gen }; + new_id = 0; + } + } + + return new_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// returns value (0..255) or -1 (invalid) +int gfx_obj_mem_get(obj_id_t mem_id, int pos) +{ + data_t *mem = gfx_obj_mem_ptr(mem_id); + + if(!mem) return -1; + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0 || pos >= (int) mem->size) return -1; + + return ((uint8_t *) mem->ptr)[pos]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_mem_del(obj_id_t mem_id, int pos) +{ + data_t *mem = gfx_obj_mem_ptr(mem_id); + + if(!mem) return; + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0 || pos >= (int) mem->size) return; + + obj_t *ptr = gfx_obj_ptr(mem_id); + if(ptr->flags.ro) return; + + mem->size--; + + if(mem->size > (unsigned) pos) { + gfx_memcpy(mem->ptr + pos, mem->ptr + pos + 1, mem->size - (unsigned) pos); + } + + ((uint8_t *) mem->ptr)[mem->size] = 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_set(obj_id_t mem_id, uint8_t val, int pos) +{ + obj_t *ptr = gfx_obj_ptr(mem_id); + + if(!ptr || ptr->base_type != OTYPE_MEM || ptr->flags.ro) return 0; + + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0) return 0; + + if(pos >= (int) mem->size) { + if(!gfx_obj_realloc(mem_id, (unsigned) pos + 1)) return 0; + } + + ((uint8_t *) mem->ptr)[pos] = val; + + return mem_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_mem_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + uint8_t *p = ptr->data.ptr; + unsigned len = ptr->data.size; + + if(!p) { + GFX_ERROR(err_internal); + return 0; + } + + if(*idx >= len) { + return 0; + } + + *id1 = gfx_obj_num_new(p[*idx], t_int); + (*idx)++; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + uint8_t *p = ptr->data.ptr; + unsigned cnt, len = ptr->data.size; + char s[17]; + int s_idx = 0; + unsigned sub_type = ptr->sub_type; + obj_id_t ref_id = ptr->data.ref_id; + + if(!p) return 1; + + if(!style.dump) { + if(!style.ref) { + if(style.inspect) { + if(ref_id) { + gfxboot_log("%s, ", gfx_obj_id2str(ref_id)); + data_t *ref_data = gfx_obj_mem_ptr(ref_id); + if(ref_data && ptr->data.ptr >= ref_data->ptr) { + gfxboot_log("ofs 0x%x, ", (unsigned) (ptr->data.ptr - ref_data->ptr)); + } + } + gfxboot_log("size %u", len); + // if(sub_type) gfxboot_log(", subtype %u", sub_type); + } + + if(sub_type == t_string || sub_type == t_word || sub_type == t_ref) { + if(style.inspect) gfxboot_log(", "); + gfxboot_log("\""); + for(cnt = 0; cnt < len; cnt++) { + gfxboot_log("%c", p[cnt] < 0x20 ? ' ' : p[cnt]); + } + gfxboot_log("\""); + } + else { + return 0; + } + + return 1; + } + } + else { + // if(len > 64) len = 64; // log at most this much + gfxboot_log(" "); + s_idx = 0; + for(cnt = 0; cnt < len; cnt++) { + gfxboot_log(" %02x", p[cnt]); + s[s_idx++] = (p[cnt] >= 0x20 && p[cnt] < 0x7f) ? (char) p[cnt] : '.'; + if((cnt & 15) == 15) { + s[s_idx] = 0; + gfxboot_log(" %s", s); + s_idx = 0; + } + if((cnt & 15) == 15 && cnt + 1 < len) { + gfxboot_log("\n "); + } + } + if(s_idx) { + s[s_idx] = 0; + int spaces = 16 - s_idx; + while(spaces--) gfxboot_log(" "); + gfxboot_log(" %s", s); + } + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_cmp(data_t *mem1, data_t *mem2) +{ + int result = 0; + + unsigned len = mem1->size < mem2->size ? mem1->size : mem2->size; + + if(len) { + if((result = gfx_memcmp(mem1->ptr, mem2->ptr, len))) { + result = result > 0 ? 1 : -1; + } + } + + if(!result && mem1->size != mem2->size) { + result = mem1->size > mem2->size ? 1 : -1; + } + + return result; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_mem_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + data_t *data = OBJ_DATA_FROM_PTR(ptr); + + return gfx_obj_ref_dec_delay_gc(data->ref_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + data_t *data = OBJ_DATA_FROM_PTR(ptr); + + return data->ref_id == id; +} diff --git a/gfxboot_num.c b/gfxboot_num.c new file mode 100644 index 0000000..6af69b6 --- /dev/null +++ b/gfxboot_num.c @@ -0,0 +1,67 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// num + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_num_new(int64_t num, uint8_t sub_type) +{ + obj_id_t id = gfx_obj_new(OTYPE_NUM); + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + ptr->data.value = num; + ptr->sub_type = sub_type; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t *gfx_obj_num_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM) return 0; + + return &ptr->data.value; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t *gfx_obj_num_subtype_ptr(obj_id_t id, uint8_t subtype) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM || ptr->sub_type != subtype) return 0; + + return &ptr->data.value; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_num_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + int64_t num = ptr->data.value; + + if(style.ref) return 1; + + switch(style.inspect) { + case 0: + gfxboot_log("%lld", (long long) num); + break; + case 1: + gfxboot_log("%lld (0x%llx)", (long long) num, (long long) num); + break; + } + + return 1; +} + + diff --git a/gfxboot_obj.c b/gfxboot_obj.c new file mode 100644 index 0000000..cf666d4 --- /dev/null +++ b/gfxboot_obj.c @@ -0,0 +1,570 @@ +#include +#define WITH_TYPE_NAMES 1 +#include + +typedef struct { + unsigned data_is_ptr:1; + dump_function_t dump_function; + gc_function_t gc_function; + contains_function_t contains_function; + iterate_function_t iterate_function; +} obj_descr_t; + +static unsigned gfx_obj_data_is_ptr(unsigned type); +static dump_function_t gfx_obj_dump_function(unsigned type); +static gc_function_t gfx_obj_gc_function(unsigned type); +static iterate_function_t gfx_obj_iterate_function(unsigned type); +static int gfx_obj_none_dump(obj_t *ptr, dump_style_t style); +static int gfx_obj_invalid_dump(obj_t *ptr, dump_style_t style); +static unsigned gfx_obj_none_gc(obj_t *ptr); +static int gfx_obj_none_contains(obj_t *ptr, obj_id_t id); +static unsigned gfx_obj_none_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + +obj_descr_t obj_descr[] = { + [OTYPE_NONE] = { + 0, + gfx_obj_none_dump, + 0, + 0, + 0 + }, + [OTYPE_MEM] = { + 1, + gfx_obj_mem_dump, + gfx_obj_mem_gc, + gfx_obj_mem_contains, + gfx_obj_mem_iterate + }, + [OTYPE_OLIST] = { + 1, + gfx_obj_olist_dump, + 0, + 0, + 0 + }, + [OTYPE_FONT] = { + 1, + gfx_obj_font_dump, + gfx_obj_font_gc, + gfx_obj_font_contains, + 0 + }, + [OTYPE_CANVAS] = { + 1, + gfx_obj_canvas_dump, + 0, + 0, + 0 + }, + [OTYPE_ARRAY] = { + 1, + gfx_obj_array_dump, + gfx_obj_array_gc, + gfx_obj_array_contains, + gfx_obj_array_iterate + }, + [OTYPE_HASH] = { + 1, + gfx_obj_hash_dump, + gfx_obj_hash_gc, + gfx_obj_hash_contains, + gfx_obj_hash_iterate + }, + [OTYPE_CONTEXT] = { + 1, + gfx_obj_context_dump, + gfx_obj_context_gc, + gfx_obj_context_contains, + 0 + }, + [OTYPE_NUM] = { + 0, + gfx_obj_num_dump, + 0, + 0, + 0 + }, + [OTYPE_GSTATE] = { + 1, + gfx_obj_gstate_dump, + gfx_obj_gstate_gc, + gfx_obj_gstate_contains, + 0 + }, + [OTYPE_INVALID] = { + 0, + gfx_obj_invalid_dump, + 0, + 0, + 0 + }, +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// object functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_init() +{ + unsigned size = 0x2; + + gfxboot_log("gfx_obj_init(%u)\n", size); + + gfxboot_data->vm.olist.ptr = gfx_malloc(OBJ_OLIST_SIZE(size), OBJ_ID(0, 1)); + + olist_t *ol = gfxboot_data->vm.olist.ptr; + ol->max = size; + + // create object for object list + obj_t *ptr = gfx_obj_ptr(gfxboot_data->vm.olist.id = gfx_obj_new(OTYPE_OLIST)); + + if(ptr) { + ptr->ref_cnt = -1u; // can't be deleted + ptr->data.ptr = gfxboot_data->vm.olist.ptr; + ptr->data.size = OBJ_OLIST_SIZE(size); + } + + return ptr ? 0 : 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_obj_id2str(obj_id_t id) +{ + // corresponds to OTYPE_* defines + static const char *names[] = { "nil", "mem", "olist", "font", "canv", "array", "hash", "ctx", "num", "gstate" }; + static char buf[64], buf2[32]; + const char *s, *sub_type = "", *ro = ""; + unsigned idx = OBJ_ID2IDX(id); + unsigned gen = OBJ_ID2GEN(id); + + obj_t *ptr = gfx_obj_ptr_nocheck(id); + if(ptr && id) { + if(ptr->flags.ro) ro = ".ro"; + if(ptr->sub_type) { + if(ptr->sub_type < sizeof type_name / sizeof *type_name) { + sub_type = type_name[ptr->sub_type]; + } + else { + sub_type = "?"; + } + } + s = ptr->base_type < sizeof names / sizeof *names ? names[ptr->base_type] : "???"; + if(ptr->ref_cnt != -1u) { + gfxboot_snprintf(buf2, sizeof buf2, ".%d", ptr->ref_cnt); + } + else { + gfx_memcpy(buf2, ".*", sizeof ".*"); + } + } + else { + s = id ? "?" : "nil"; + *buf2 = 0; + } + + gfxboot_snprintf(buf, sizeof buf, "#%u.%u%s.%s%s%s%s", idx, gen, buf2, s, *sub_type ? "." : "", sub_type, ro); + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_dump(obj_id_t id, dump_style_t style) +{ + unsigned type; + obj_t *ptr; + + ptr = gfx_obj_ptr(id); + + if(!ptr) { + if(style.dump) { + gfxboot_log("= object dump (id %s): not found\n", gfx_obj_id2str(id)); + } + else { + if(style.inspect) { + gfxboot_log("%s <%s>", gfx_obj_id2str(id), id ? "undef" : "nil"); + } + else { + gfxboot_log("%s", id ? "undef" : "nil"); + } + if(!style.no_nl) gfxboot_log("\n"); + } + + return; + } + + if(style.dump && !style.no_head) { + gfxboot_log("== object dump (id %s) ==\n", gfx_obj_id2str(id)); + } + + type = ptr->base_type; + + if(type) { + char *id_str = gfx_obj_id2str(id); + if(style.dump) { + gfxboot_log(" %s <", id_str); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .max = style.max }); + if(gfxboot_data->vm.debug.show_pointer && ptr->flags.data_is_ptr) { + gfxboot_log(", data %p[%u]", ptr->data.ptr, ptr->data.size); + } + gfxboot_log(">\n"); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .ref = 1, .dump = 1, .max = style.max }); + } + else { + if(style.ref) { + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = style.inspect, .ref = 1, .max = style.max }); + } + else { + if(style.inspect) { + gfxboot_log("%s <", id_str); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .max = style.max }); + gfxboot_log(">"); + } + else { + if(!gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 0, .max = style.max })) { + gfxboot_log("%s", id_str); + } + } + if(!style.no_nl) gfxboot_log("\n"); + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// Note: id1 and id2 have their reference count already increased! +// +unsigned gfx_obj_iterate(obj_id_t id, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) { + *idx = 0; + return 0; + } + + return gfx_obj_iterate_function(ptr->base_type)(ptr, idx, id1, id2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_new(unsigned type) +{ + uint32_t u, u2; + olist_t *ol = gfxboot_data->vm.olist.ptr; + unsigned size = ol->max; + obj_t *ptr = ol->ptr; + + type &= OBJ_TYPE_MASK; + + if(type == OTYPE_NONE) return 0; + + // ol->next = 0; + + for(u = 0, u2 = ol->next; u < size; u++, u2++) { + if(u2 >= ol->max) u2 -= ol->max; + if(ptr[u2].base_type == OTYPE_NONE) { + ptr[u2].gen++; + if(!ptr[u2].gen) ptr[u2].gen++; // avoid generation count 0 + ptr[u2].base_type = type; + ptr[u2].ref_cnt = 1; + ptr[u2].flags.data_is_ptr = gfx_obj_data_is_ptr(type); + + ol->next = u2 + 1; + if(ol->next >= ol->max) ol->next -= ol->max; + + return OBJ_ID(u2, ptr[u2].gen); + } + } + + // object list too small, realloc enlarged one + size += (size >> 3) + 0x100; + if(gfx_obj_realloc(gfxboot_data->vm.olist.id, OBJ_OLIST_SIZE(size))) { + olist_t *ol2 = gfx_obj_olist_ptr(gfxboot_data->vm.olist.id); + if(ol2) { + ol2->max = size; + return gfx_obj_new(type); + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_alloc(unsigned type, uint32_t size) +{ + obj_id_t id = gfx_obj_new(type); + obj_t *optr = gfx_obj_ptr(id); + + if(optr) { + optr->data.size = size; + optr->data.ptr = gfx_malloc(size, id); + + if(!optr->data.ptr) { + // cleanup entry but keep generation counter + *optr = (obj_t) { gen:optr->gen }; + id = 0; + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_realloc(obj_id_t id, uint32_t size) +{ + obj_t *ptr = gfx_obj_ptr(id); + void *ptr_old, *ptr_new; + uint32_t size_old; + + if(ptr && ptr->flags.data_is_ptr) { + ptr_new = gfx_malloc(size, id); + + if(ptr_new) { + size_old = ptr->data.size; + ptr_old = ptr->data.ptr; + + ptr->data.ptr = ptr_new; + ptr->data.size = size; + + if(size_old > size) size_old = size; + if(size_old && ptr_old) { + gfx_memcpy(ptr_new, ptr_old, size_old); + } + + // store link to new object list + if(id == gfxboot_data->vm.olist.id) { + gfxboot_data->vm.olist.ptr = ptr_new; + } + + gfx_free(ptr_old); + } + else { + id = 0; + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_ref_inc(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + if(gfxboot_data->vm.debug.trace.gc) gfxboot_log("GC: ++%s\n", gfx_obj_id2str(id)); + + if(ptr->ref_cnt != -1u) ptr->ref_cnt++; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_ref_dec(obj_id_t id) +{ + if(gfx_obj_ref_dec_delay_gc(id)) gfx_obj_run_gc(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decrement ref counter of id and add to gc list if ref count becomes 0. +// +// return: +// 1: entry to gc list added +// 0: nothing changed +// +unsigned gfx_obj_ref_dec_delay_gc(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) return 0; + + if(gfxboot_data->vm.debug.trace.gc) gfxboot_log("GC: --%s\n", gfx_obj_id2str(id)); + + if(ptr->ref_cnt && ptr->ref_cnt != -1u) { + ptr->ref_cnt--; + } + + if(ptr->ref_cnt == 0) { + if(!gfxboot_data->vm.gc_list) { + gfxboot_data->vm.gc_list = gfx_obj_array_new(0); + } + if(gfxboot_data->vm.gc_list) { + gfx_obj_array_push(gfxboot_data->vm.gc_list, id, 0); + + return 1; + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_run_gc() +{ + unsigned idx, type; + obj_id_t id; + obj_t *optr; + void *data_ptr; + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.gc_list); + + if(!a) return; + + for(idx = 0; idx < a->size; idx++) { + id = a->ptr[idx]; + if(!id) continue; + optr = gfx_obj_ptr(id); + if(!optr) continue; + type = optr->base_type; + data_ptr = optr->data.ptr; + + unsigned more_gc = gfx_obj_gc_function(type)(optr); + + // ptr to gc_list might be outdated + if(more_gc) { + a = gfx_obj_array_ptr(gfxboot_data->vm.gc_list); + } + + if(optr->flags.data_is_ptr) { + if(!optr->flags.nofree) { + gfx_free(data_ptr); + } + } + + // keep generation counter + *optr = (obj_t) { gen:optr->gen }; + } + + // clear gc list + a->size = 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_t *gfx_obj_ptr_nocheck(obj_id_t id) +{ + uint32_t idx; + olist_t *ol; + + idx = OBJ_ID2IDX(id); + + ol = gfxboot_data->vm.olist.ptr; + + if(idx >= ol->max) return 0; + + return ol->ptr + idx; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_t *gfx_obj_ptr(obj_id_t id) +{ + obj_t *ptr; + + if(!id) return 0; + + ptr = gfx_obj_ptr_nocheck(id); + + if(!ptr) return 0; + + if(ptr->base_type == OTYPE_NONE || ptr->gen != OBJ_ID2GEN(id)) { + // nonexistent or outdated + return 0; + } + + return ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_data_is_ptr(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].data_is_ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +dump_function_t gfx_obj_dump_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].dump_function; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gc_function_t gfx_obj_gc_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].gc_function ?: gfx_obj_none_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +contains_function_t gfx_obj_contains_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].contains_function ?: gfx_obj_none_contains; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +iterate_function_t gfx_obj_iterate_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].iterate_function ?: gfx_obj_none_iterate; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_none_dump(obj_t *ptr, dump_style_t style) +{ + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_invalid_dump(obj_t *ptr, dump_style_t style) +{ + gfxboot_log(" \n"); + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_none_gc(obj_t *ptr) +{ + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_none_contains(obj_t *ptr, obj_id_t id) +{ + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_none_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + return 0; +} diff --git a/gfxboot_olist.c b/gfxboot_olist.c new file mode 100644 index 0000000..4065829 --- /dev/null +++ b/gfxboot_olist.c @@ -0,0 +1,76 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// obj list + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_olist_new(unsigned max) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_OLIST, OBJ_OLIST_SIZE(max)); + olist_t *ol = gfx_obj_olist_ptr(id); + + if(ol) { + ol->max = max; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +olist_t *gfx_obj_olist_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_OLIST) return 0; + + return (olist_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_olist_dump(obj_t *ptr, dump_style_t style) +{ + unsigned u, used; + + if(!ptr) return 1; + + olist_t *ol = ptr->data.ptr; + + if(ptr->data.size != OBJ_OLIST_SIZE(ol->max)) { + gfxboot_log(" \n"); + + return 1; + } + + for(u = used = 0; u < ol->max; u++) { + if(ol->ptr[u].base_type != OTYPE_NONE) used++; + } + + if(!style.ref) { + if(style.inspect) { + gfxboot_log("size %u, next %u, max %u", used, ol->next, ol->max); + + return 1; + } + else { + return 0; + } + } + + if(style.dump) gfxboot_log(" "); + + for(u = 0; u < ol->max; u++) { + if(ol->ptr[u].base_type != OTYPE_NONE) { + obj_id_t id = OBJ_ID(u, ol->ptr[u].gen); + dump_style_t s = { .inspect = style.inspect, .no_head = 1 }; + s.dump = style.dump && u; + gfx_obj_dump(id, s); + } + } + + return 1; +} diff --git a/gfxboot_prim.c b/gfxboot_prim.c new file mode 100644 index 0000000..f84a3c3 --- /dev/null +++ b/gfxboot_prim.c @@ -0,0 +1,4399 @@ +#include + +#define WITH_PRIM_NAMES 1 +#define WITH_PRIM_HEADERS 1 +#include + +static obj_id_t prim_array_start_id = 0; +static obj_id_t prim_hash_start_id = 0; + +typedef enum { + op_sub, op_mul, op_div, op_mod, op_and, op_or, op_xor, op_min, op_max, op_shl, op_shr, + op_neg, op_not, op_abs +} op_t; + +typedef enum { + op_eq, op_ne, op_gt, op_ge, op_lt, op_le, op_cmp +} cmp_op_t; + +typedef struct { + obj_id_t id; + obj_t *ptr; +} arg_t; + +static arg_t *gfx_arg_1(uint8_t type); +static arg_t *gfx_arg_n(unsigned argc, uint8_t arg_types[]); +static int is_true(obj_id_t id); +static error_id_t do_op(op_t op, int64_t *result, int64_t val1, int64_t val2, unsigned sub_type); +static void binary_op_on_stack(op_t op); +static void unary_op_on_stack(op_t op); +static void binary_cmp_on_stack(cmp_op_t op); +static void gfx_prim_def_at(unsigned where); + +#define IS_NIL 0x80 +#define IS_RW 0x40 +#define TYPE_MASK 0x3f + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +arg_t *gfx_arg_1(uint8_t type) +{ + static arg_t argv[1]; + unsigned is_nil = type & IS_NIL; + unsigned is_rw = type & IS_RW; + type &= TYPE_MASK; + + GFX_ERROR(err_ok); + + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + + return 0; + } + + obj_id_t id = argv[0].id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = argv[0].ptr = gfx_obj_ptr(id); + + if( + (ptr && (type == ptr->base_type || type == OTYPE_ANY)) || + (id == 0 && (type == OTYPE_NONE || is_nil)) + ) { + if(is_rw && ptr && ptr->flags.ro) { + GFX_ERROR(err_readonly); + + return 0; + } + + return argv; + } + + GFX_ERROR(err_invalid_arguments); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +arg_t *gfx_arg_n(unsigned argc, uint8_t arg_types[]) +{ + unsigned i; + static arg_t argv[8]; + +#if 0 + if(argc >= sizeof argv / sizeof *argv) { + GFX_ERROR(err_internal); + + return 0; + } +#endif + + GFX_ERROR(err_ok); + + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < argc) { + GFX_ERROR(err_stack_underflow); + + return 0; + } + + unsigned stack_size = pstack->size; + obj_id_t *stack = pstack->ptr + stack_size - argc; + + for(i = 0; i < argc; i++) { + obj_id_t id = argv[i].id = stack[i]; + obj_t *ptr = argv[i].ptr = gfx_obj_ptr(id); + + uint8_t type = arg_types[i]; + unsigned is_nil = type & IS_NIL; + unsigned is_rw = type & IS_RW; + type &= TYPE_MASK; + + if( + (ptr && (type == ptr->base_type || type == OTYPE_ANY)) || + (id == 0 && (type == OTYPE_NONE || is_nil)) + ) { + if(is_rw && ptr && ptr->flags.ro) { + GFX_ERROR(err_readonly); + + return 0; + } + continue; + } + + GFX_ERROR(err_invalid_arguments); + + return 0; + } + + return argv; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// return: 0 = failed, 1 = ok +// +int gfx_setup_dict() +{ + unsigned u; + obj_id_t prim_id; + + gfx_obj_ref_dec(gfxboot_data->vm.program.dict); + gfxboot_data->vm.program.dict = gfx_obj_hash_new(0); + if(!gfxboot_data->vm.program.dict) return 0; + + for(u = 0; u < sizeof prim_names / sizeof *prim_names ; u++) { + gfx_obj_hash_set( + gfxboot_data->vm.program.dict, + gfx_obj_const_mem_nofree_new((const uint8_t *) prim_names[u], gfx_strlen(prim_names[u]), t_ref, 0), + prim_id = gfx_obj_num_new(u, t_prim), + 0 + ); + + switch(u) { + case prim_idx_array_start: + prim_array_start_id = prim_id; + break; + case prim_idx_hash_start: + prim_hash_start_id = prim_id; + break; + } + } + + if(!prim_array_start_id || !prim_hash_start_id) return 0; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +error_id_t gfx_run_prim(unsigned prim) +{ + if(prim > sizeof gfx_prim_list / sizeof *gfx_prim_list) { + GFX_ERROR(err_invalid_code); + return gfxboot_data->vm.error.id; + } + + gfx_prim_list[prim](); + + return gfxboot_data->vm.error.id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start code block +// +// group: code,array,hash +// +// ( -- code_1 ) +// +// Put a reference to the following code block on the stack. The code block +// starts after the opening `{` and extends to (and including) the matching +// closing `}`. +// +// This special word is handled while converting the source code into binary code with `gfxboot-compile`. +// For this reason, this is the only word that cannot be redefined. +// +// example: +// +// { "Hello!" show } +// +void gfx_prim_code_start() +{ + // will never be called +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish code block +// +// group: code,array,hash +// +// ( -- ) +// +// This marks the end of a code block. When the code is executed, the +// interpreter leaves the current execution context and returns to the +// parent context. +// +// example: +// +// /hello { "Hello!" show } def +// hello # print "Hello!" +// +void gfx_prim_code_end() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_invalid_instruction); + return; + } + + obj_id_t parent_id = context->parent_id; + + switch(context->type) { + case t_ctx_block: + case t_ctx_func: + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + break; + + case t_ctx_loop: + context->ip = 0; + break; + + case t_ctx_repeat: + if(--context->index) { + context->ip = 0; + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + case t_ctx_for: + context->index += context->inc; + if( + (context->inc > 0 && context->index <= context->max) || + (context->inc < 0 && context->index >= context->max) + ) { + context->ip = 0; + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(context->index, t_int), 0); + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + case t_ctx_forall: + ; + obj_id_t val1, val2; + unsigned idx = context->index; + unsigned items = gfx_obj_iterate(context->iterate_id, &idx, &val1, &val2); + context->index = idx; + + if(items) { + context->ip = 0; + // note: reference counting for val1 and val2 has been done inside gfx_obj_iterate() + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val1, 0); + if(items > 1) gfx_obj_array_push(gfxboot_data->vm.program.pstack, val2, 0); + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + default: + GFX_ERROR(err_invalid_instruction); + break; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start array definition +// +// group: array,code,hash +// +// ( -- mark_1 ) +// +// mark_1: array start marker +// +// Put array start marker on stack. Array definition is completed with ]. +// +// example: +// +// [ 1 2 3 ] # array with 3 elements +// +void gfx_prim_array_start() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, prim_array_start_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish array definition +// +// group: array,code,hash +// +// ( mark_1 any_1 ... any_n -- array_1 ) +// +// mark_1: array start marker +// any_1 ... any_n: some elements +// array_1: new array +// +// Search for mark_1 on the stack and put everything between mark_1 and TOS +// into an array. +// +// example: +// +// [ 10 20 "some" "text" ] # array with 4 elements +// +void gfx_prim_array_end() +{ + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!a) return; + + unsigned idx = a->size; + unsigned start_idx = -1u; + + while(idx-- > 0) { + if(a->ptr[idx] == prim_array_start_id) { + start_idx = idx; + break; + } + } + + if(start_idx == -1u) { + GFX_ERROR(err_no_array_start); + return; + } + + obj_id_t array_id = gfx_obj_array_new(a->size - start_idx - 1); + + if(!array_id) { + GFX_ERROR(err_no_memory); + return; + } + + // no ref counting neded as the elements are just moved + for(idx = start_idx + 1; idx < a->size; idx++) { + gfx_obj_array_push(array_id, a->ptr[idx], 0); + } + + a->size = start_idx + 1; + a->ptr[start_idx] = array_id; + + gfx_obj_ref_dec(prim_array_start_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start hash definition +// +// group: hash,array,code +// +// ( -- mark_1 ) +// +// mark_1: hash start marker +// +// Put hash start marker on stack. Hash definition is completed with ). +// +// example: +// +// ( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +// +void gfx_prim_hash_start() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, prim_hash_start_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish hash definition +// +// group: hash,array,code +// +// ( mark_1 any_1 ... any_n -- hash_1 ) +// +// mark_1: array start marker +// any_1 ... any_n: some key - value pairs +// hash_1: new hash +// +// Search for mark_1 on the stack and put everything between mark_1 and TOS +// into a hash. The elements are interpreted alternatingly as key and value. +// If there's an odd number of elements on the stack, the last value is nil. +// +// example: +// +// ( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +// +void gfx_prim_hash_end() +{ + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!a) return; + + unsigned idx = a->size; + unsigned start_idx = -1u; + + while(idx-- > 0) { + if(a->ptr[idx] == prim_hash_start_id) { + start_idx = idx; + break; + } + } + + if(start_idx == -1u) { + GFX_ERROR(err_no_hash_start); + return; + } + + obj_id_t hash_id = gfx_obj_hash_new((a->size - start_idx) / 2); + + if(!hash_id) { + GFX_ERROR(err_no_memory); + return; + } + + // no ref counting neded as the elements are just moved + for(idx = start_idx + 1; idx < a->size; idx += 2) { + obj_id_t key = a->ptr[idx]; + obj_id_t val = idx + 1 < a->size ? a->ptr[idx + 1] : 0; + if(gfx_obj_mem_ptr(key)) { + gfx_obj_hash_set(hash_id, key, val, 0); + } + else { + GFX_ERROR(err_invalid_hash_key); + gfx_obj_ref_dec(hash_id); + return; + } + } + + a->size = start_idx + 1; + a->ptr[start_idx] = hash_id; + + gfx_obj_ref_dec(prim_hash_start_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// where: 0 (existing), 1 (local), 2 (global) +// +void gfx_prim_def_at(unsigned where) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if(!ptr1 || ptr1->sub_type != t_ref) { + GFX_ERROR(err_invalid_instruction); + return; + } + + obj_id_t dict_id = 0; + + if(where == 0) { + obj_id_pair_t pair = gfx_lookup_dict(OBJ_DATA_FROM_PTR(ptr1)); + if(pair.id1) { + dict_id = pair.id1; + } + else { + where = 1; + } + } + + if(where) { + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + if(where == 2) { + while(context->parent_id) { + context = gfx_obj_context_ptr(context->parent_id); + if(!context) { + GFX_ERROR(err_internal); + return; + } + } + } + + if(!context->dict_id) context->dict_id = gfx_obj_hash_new(0); + + dict_id = context->dict_id; + + if(!dict_id) { + GFX_ERROR(err_internal); + return; + } + } + + gfx_obj_hash_set(dict_id, id1, id2, 1); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// If word_1 does not exist, define word_1 in the current context. +// +// If word_1 does already exist, redefine word_1 in the context in which it is defined. +// +// example: +// /x 100 def # define x as 100 +// /neg { -1 mul } def # define a function that negates its argument +// +void gfx_prim_def() +{ + gfx_prim_def_at(0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new local word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// Define word_1 in the current local context. +// +// example: +// /foo 200 ldef # define local word foo as 200 +// +void gfx_prim_ldef() +{ + gfx_prim_def_at(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new global word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// Define word_1 in the global context. +// +// example: +// /foo 300 gdef # define global word foo as 300 +// +void gfx_prim_gdef() +{ + gfx_prim_def_at(2); +} + + +#if 0 +/* not really needed... */ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_class() +{ + arg_t *argv; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_MEM, OTYPE_HASH, OTYPE_HASH | IS_RW }); + + if(argv) { + if(argv[0].ptr->sub_type != t_ref) { + GFX_ERROR(err_invalid_arguments); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + while(context->parent_id) { + context = gfx_obj_context_ptr(context->parent_id); + if(!context) { + GFX_ERROR(err_internal); + return; + } + } + + if(!context->dict_id) context->dict_id = gfx_obj_hash_new(0); + + obj_id_t dict_id = context->dict_id; + + gfx_obj_hash_set(dict_id, argv[0].id, argv[2].id, 1); + + hash_t *hash = OBJ_HASH_FROM_PTR(argv[2].ptr); + obj_id_t old_id = hash->parent_id; + hash->parent_id = gfx_obj_ref_inc(argv[1].id); + gfx_obj_ref_dec(old_id); + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + } +} +#endif + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// conditional execution +// +// group: if +// +// (bool_1 code_1 -- ) +// (int_1 code_1 -- ) +// (nil code_1 -- ) +// (any_1 code_1 -- ) +// +// code_1: code block to run if condition evaluates to 'true' +// +// The condition is false for: boolean false, integer 0, or nil. In all other cases it is true. +// +// example: +// +// true { "ok" show } if # "ok" +// 50 { "ok" show } if # "ok" +// nil { "ok" show } if # shows nothing +// "" { "ok" show } if # "ok" +// +void gfx_prim_if() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id2)) { + GFX_ERROR(err_invalid_code); + return; + } + + if(is_true(id1)) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_block); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// conditional execution +// +// group: if +// +// (bool_1 code_1 code_2 -- ) +// (int_1 code_1 code_2 -- ) +// (nil code_1 code_2 -- ) +// (any_1 code_1 code_2 -- ) +// +// code_1: code block to run if condition evaluates to 'true' +// code_2: code block to run if condition evaluates to 'false' +// +// The condition is false for: boolean false, integer 0, or nil. In all other cases it is true. +// +// example: +// +// false { "ok" } { "bad" } ifelse show # "bad" +// 20 { "ok" } { "bad" } ifelse show # "ok" +// nil { "ok" } { "bad" } ifelse sho # "bad" +// "" { "ok" } { "bad" } ifelse show # "ok" +// +void gfx_prim_ifelse() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 3) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 3]; + obj_id_t id2 = pstack->ptr[pstack->size - 2]; + obj_id_t id3 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id2) || !gfx_is_code(id3)) { + GFX_ERROR(err_invalid_code); + return; + } + + obj_id_t context_id = gfx_obj_context_new(t_ctx_block); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(is_true(id1) ? id2 : id3); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + for(int i = 0; i < 3; i++) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// endless loop +// +// group: if,loop +// +// ( code_1 -- ) +// +// Repeat code_1 forever until you exit the loop explicitly. +// +// example: +// +// { "Help!" show } loop +// +void gfx_prim_loop() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id1)) { + GFX_ERROR(err_invalid_code); + return; + } + + obj_id_t context_id = gfx_obj_context_new(t_ctx_loop); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id1); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// repeat code block +// +// group: if,loop +// +// ( int_1 code_1 -- ) +// +// Repeat code_1 int_1 times. If int_1 is less or equal to 0, code_1 is not run. +// +// example: +// +// 3 { "Help!" show } repeat # "Help!Help!Help!" +// +void gfx_prim_repeat() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + int64_t *count = gfx_obj_num_subtype_ptr(id1, t_int); + + if(!count || !gfx_is_code(id2)) { + GFX_ERROR(err_invalid_code); + return; + } + + if(*count > 0) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_repeat); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + context->index = *count; + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// run code block repeatedly, with counter +// +// group: if,loop +// +// ( int_1 int_2 int_3 code_1 -- ) +// int_1: start value +// int_2: increment value +// int_3: maximum value (inclusive) +// +// Run code_1 repeatedly and put the current counter value on the stack in every iteration. +// +// The counter starts with int_1 and is incremented by int_2 until it +// reaches int_3. The code block is executed with the start value and then +// as long as the counter is less than or equal to the maximum value. +// +// The increment may be negative. In that case the loop is executed as long as the counter +// is greater than or equal to the maximum value. +// +// If the increment is 0, the loop is not executed. +// +// example: +// +// 0 1 4 { } for # 0 1 2 3 4 +// 0 -2 -5 { } for # 0 -2 -4 +// +void gfx_prim_for() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 4) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 4]; + obj_id_t id2 = pstack->ptr[pstack->size - 3]; + obj_id_t id3 = pstack->ptr[pstack->size - 2]; + obj_id_t id4 = pstack->ptr[pstack->size - 1]; + + int64_t *start = gfx_obj_num_subtype_ptr(id1, t_int); + int64_t *inc = gfx_obj_num_subtype_ptr(id2, t_int); + int64_t *max = gfx_obj_num_subtype_ptr(id3, t_int); + + if(!start || !inc || !max || !gfx_is_code(id4)) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int pop_count = 4; + + if( + (*inc > 0 && *start <= *max) || + (*inc < 0 && *start >= *max) + ) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_for); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id4); + context->index = *start; + context->inc = *inc; + context->max = *max; + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + pop_count--; + } + + for(int i = 0; i < pop_count; i++) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// loop over all elements +// +// group: if,loop +// +// ( array_1 code_1 -- ) +// ( hash_1 code_1 -- ) +// ( string_1 code_1 -- ) +// +// Run code_1 for each element of array_1, hash_1, or string_1. +// +// For array_1 and string_1, each element is put on the stack and code_1 is run. +// +// For hash_1, each key and value pair are put on the stack and code_1 is run. +// The hash keys are iterated in alphanumerical order. +// +// Note that string_1 is interpreted as a sequence of bytes, not UTF8-encoded characters. +// +// example: +// +// [ 10 20 30 ] { } forall # 10 20 30 +// ( "foo" 10 "bar" 20 ) { } forall # "bar" 20 "foo" 10 +// "ABC" { } forall # 65 66 67 +// +void gfx_prim_forall() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if( + !gfx_is_code(id2) || + !ptr1 || + (ptr1->base_type != OTYPE_ARRAY && ptr1->base_type != OTYPE_HASH && ptr1->base_type != OTYPE_MEM) + ) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val1, val2; + unsigned idx = 0; + unsigned items = gfx_obj_iterate(id1, &idx, &val1, &val2); + + if(items) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_forall); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + context->index = idx; + context->iterate_id = gfx_obj_ref_inc(id1); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // note: reference counting for val1 and val2 has been done inside gfx_obj_iterate() + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val1, 0); + if(items > 1) gfx_obj_array_push(gfxboot_data->vm.program.pstack, val2, 0); + } + else { + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// leave loop/repeat/for/forall loop +// +// group: if,loop +// +// ( -- ) +// +// Exit from current loop. +// +// example: +// +// 0 1 10 { dup 4 eq { exit } if } for # 0 1 2 3 4 +// +void gfx_prim_exit() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + return; + } + + for(; context; context = gfx_obj_context_ptr(context->parent_id)) { + if(context->type == t_ctx_block) continue; + + if(context->type == t_ctx_func) { + GFX_ERROR(err_no_loop_context); + return; + } + + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, context->parent_id); + + return; + } + + GFX_ERROR(err_no_loop_context); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// leave current function +// +// group: if,loop +// +// Exit from currently running function. +// +// example: +// +// /foo { dup nil eq { return } if show } def +// "abc" foo # shows "abc" +// nil foo # does nothing +// +void gfx_prim_return() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + return; + } + + for(; context; context = gfx_obj_context_ptr(context->parent_id)) { + if(context->type == t_ctx_func) break; + } + + if(!context) gfxboot_data->vm.program.stop = 1; + + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, context ? context->parent_id : 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create or duplicate string +// +// group: mem +// +// ( int_1 -- string_1 ) +// int_1: length +// string_1: new string with length int_1 +// ( string_2 -- string_3 ) +// string_2: string to duplicate +// string_3: copy of string_2 +// +// There are two variants: given a number, a string of that length is +// created and initialized with zeros; given a string, a copy of that string is created. +// +// int_1 may be 0 to create a zero-length string. +// +// Note: duplication works for all string-like objects. For example for word references and even code blocks. +// +// example: +// +// 2 string # creates an empty string of length 2: "\x00\x00" +// "abc" string # creates a copy of "abc" +// +// # even this works: +// /abc mem # a copy of /abc +// { 10 20 } mem # a copy of the code block { 10 20 } +// +void gfx_prim_string() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val_id = 0; + + switch(ptr1->base_type) { + case OTYPE_NUM: + { + int64_t value = OBJ_VALUE_FROM_PTR(ptr1); + + if(value < 0 || value >= (1ll << 32)) { + GFX_ERROR(err_invalid_range); + return; + } + + val_id = gfx_obj_mem_new(value); + + if(!val_id) { + GFX_ERROR(err_no_memory); + return; + } + } + break; + + case OTYPE_MEM: + val_id = gfx_obj_mem_dup(id1, 0); + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get array, hash, or string element +// +// group: get +// +// ( array_1 int_1 -- ) +// array_1: array to modify +// int_1: element index +// +// ( hash_1 string_1 -- ) +// hash_1: hash to modify +// string_1: key +// +// ( string_2 int_2 -- ) +// string_2: string to modify +// int_2: element index +// +// Read the respective element of array_1, hash_1, or string_2. +// +// example: +// +// [ 10 20 30 ] 2 get # 30 +// ( "foo" 10 "bar" 20 ) "foo" get # 10 +// "ABC" 1 get # 66 +// +void gfx_prim_get() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val = 0; + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + val = gfx_obj_array_get(id1, *idx); + gfx_obj_ref_inc(val); + } + break; + + case OTYPE_HASH: + { + data_t *key = gfx_obj_mem_ptr(id2); + if(!key) { + GFX_ERROR(err_invalid_hash_key); + return; + } + val = gfx_obj_hash_get(id1, key).id2; + gfx_obj_ref_inc(val); + } + break; + + case OTYPE_MEM: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + int i = gfx_obj_mem_get(id1, *idx); + if(i != -1) { + val = gfx_obj_num_new(i, t_int); + } + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_get_x(data_t *key) +{ + arg_t *argv; + + argv = gfx_arg_1(OTYPE_HASH); + + if(argv) { + obj_id_pair_t pair = gfx_obj_hash_get(argv[0].id, key); + if(!pair.id1) { + GFX_ERROR(err_invalid_arguments); + return; + } + gfx_exec_id(argv[0].id, pair.id2, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_put_x(obj_id_t key) +{ + arg_t *argv; + + argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_HASH | IS_RW, OTYPE_ANY | IS_NIL }); + + if(argv) { + if(!gfx_obj_hash_set(argv[0].id, key, argv[1].id, 1)) { + GFX_ERROR(err_invalid_hash_key); + return; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set array, hash, or string element +// +// group: get +// +// ( array_1 int_1 any_1 -- ) +// array_1: array to modify +// int_1: element index +// any_1: new value +// +// ( hash_1 string_1 any_2 -- ) +// hash_1: hash to modify +// string_1: key +// any_2: new value +// +// ( string_2 int_2 int_3 -- ) +// string_2: string to modify +// int_2: element index +// int_3: new value +// +// Set the respective element of array_1, hash_1, or string_2. +// +// Note that string constants are read-only and cannot be modified. +// +// example: +// +// /x [ 10 20 30 ] def +// x 2 40 put # x is now [ 10 20 40 ] +// +// /y ( "foo" 10 "bar" 20 ) def +// y "bar" 40 put # y is now ( "foo" 10 "bar" 40 ) +// +// /z "ABC" mem def # mem is needed to create a writable copy +// z 1 68 put # z is now "ADC" +// +void gfx_prim_put() +{ + arg_t *argv; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_ARRAY | IS_RW, OTYPE_NUM, OTYPE_ANY | IS_NIL }); + + if(argv) { + int pos = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + if(!gfx_obj_array_set(argv[0].id, argv[2].id, pos, 1)) { + GFX_ERROR(err_invalid_range); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } + + if(gfxboot_data->vm.error.id == err_readonly) return; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_HASH | IS_RW, OTYPE_MEM, OTYPE_ANY | IS_NIL }); + + if(argv) { + if(!gfx_obj_hash_set(argv[0].id, argv[1].id, argv[2].id, 1)) { + GFX_ERROR(err_invalid_hash_key); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } + + if(gfxboot_data->vm.error.id == err_readonly) return; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_MEM | IS_RW, OTYPE_NUM, OTYPE_NUM }); + + if(argv) { + uint8_t val = OBJ_VALUE_FROM_PTR(argv[2].ptr); + int pos = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + if(!gfx_obj_mem_set(argv[0].id, val, pos)) { + GFX_ERROR(err_invalid_range); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// delete an array, hash, or string element +// +// group: get +// +// ( array_1 int_1 -- ) +// array_1: array to modify +// int_1: element index +// +// ( hash_1 string_1 -- ) +// hash_1: hash to modify +// string_1: key +// +// ( string_2 int_2 -- ) +// string_2: string to modify +// int_2: element index +// +// Delete the respective element of array_1, hash_1, or string_2. The length +// of array_1 andstring_2 will be reduced by 1. +// +// Note that string constants are read-only and cannot be modified. +// +// example: +// +// /x [ 10 20 30 ] def +// x 1 delete # x is now [ 10 30 ] +// +// /y ( "foo" 10 "bar" 20 ) def +// y "foo" delete # y is now ( "bar" 20 ) +// +// /z "ABC" mem def # mem is needed to create a writable copy +// z 1 delete # z is now "AC" +// +void gfx_prim_delete() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + if(ptr1->flags.ro) { + GFX_ERROR(err_readonly); + return; + } + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + gfx_obj_array_del(id1, *idx, 1); + } + break; + + case OTYPE_HASH: + { + data_t *key = gfx_obj_mem_ptr(id2); + if(!key) { + GFX_ERROR(err_invalid_hash_key); + return; + } + gfx_obj_hash_del(id1, id2, 1); + } + break; + + case OTYPE_MEM: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + gfx_obj_mem_del(id1, *idx); + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get size of array, hash, or string +// +// group: get +// +// ( array_1 -- int_1 ) +// int_1: number of elements in array_1 +// +// ( hash_1 -- int_2 ) +// int_2: number of key - value pairs in hash_1 +// +// ( string_1 -- int_3 ) +// int_3: number of bytes in string_1 +// +// Put the length of array_1, hash_1, or string_1 on the stack. +// +// example: +// +// [ 10 20 30 ] length # 3 +// ( "foo" 10 "bar" 20 ) length # 2 +// "ABC" length # 3 +// +void gfx_prim_length() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t val = 0; + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + val = OBJ_ARRAY_FROM_PTR(ptr1)->size; + break; + + case OTYPE_HASH: + val = OBJ_HASH_FROM_PTR(ptr1)->size; + break; + + case OTYPE_MEM: + val = OBJ_DATA_FROM_PTR(ptr1)->size; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val_id = gfx_obj_num_new(val, t_int); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// duplicate TOS +// +// group: stack +// +// ( any_1 -- any_1 any_1 ) +// +// Duplicate the top-of-stack element. +// +// example: +// +// 10 dup # 10 10 +// +void gfx_prim_dup() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id1, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// remove TOS +// +// group: stack +// +// ( any_1 -- ) +// +// Remove the top-of-stack element. +// +// example: +// +// 10 20 pop # 10 +// +void gfx_prim_pop() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// swap upper two stack elements +// +// group: stack +// +// ( any_1 any_2 -- any_2 any_1 ) +// +// Swap the two topmost stack elements. +// +// example: +// +// 10 20 exch # 20 10 +// +void gfx_prim_exch() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id2, (int) pstack->size - 2, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id1, (int) pstack->size - 1, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// rotate upper three stack elements +// +// group: stack +// +// ( any_1 any_2 any_3 -- any_2 any_3 any_1 ) +// +// Rotate any_1 to the top-of-stack. +// +// example: +// +// 10 20 30 rot # 20 30 10 +// +void gfx_prim_rot() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 3) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 3]; + obj_id_t id2 = pstack->ptr[pstack->size - 2]; + obj_id_t id3 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id2, (int) pstack->size - 3, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id3, (int) pstack->size - 2, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id1, (int) pstack->size - 1, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// rotate stack elements +// +// group: stack +// +// ( any_1 ... any_n int_1 int_2 -- any_x ... any_y ) +// int_1: number of stack elements to rotate (equal to index n) +// int_2: rotation amount +// +// Rotate the n elements any_1 ... any_n. The new positions are calculated as follows: +// +// x = (1 - int_2) mod int_1 +// +// y = (n - int_2) mod int_1 +// +// This can be seen as rotating int_1 elements up by int_2 resp. down by -int_2. +// +// example: +// +// 10 20 30 40 50 5 2 roll # 40 50 10 20 30 +// +// /rot { 3 -1 roll } def # definition of 'rot' +// +void gfx_prim_roll() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + int64_t *xlen = gfx_obj_num_ptr(id1); + int64_t *xofs = gfx_obj_num_ptr(id2); + + if(!xlen || *xlen < 0 || !xofs) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int len = *xlen; + int ofs = *xofs; + + if((unsigned) len + 2 > pstack->size) { + GFX_ERROR(err_stack_underflow); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + if(!len) return; + + ofs %= len; + if(ofs < 0) ofs += len; + if(!ofs) return; + + ofs = len - ofs; + + // FIXME: it's a bit inefficient this way + while(ofs--) { + obj_id_t tmp_id = pstack->ptr[(int) pstack->size - len]; + for(int i = 0; i < len - 1; i++) { + pstack->ptr[(int) pstack->size - len + i] = pstack->ptr[(int) pstack->size - len + i + 1]; + } + pstack->ptr[pstack->size - 1] = tmp_id; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy TOS-1 to TOS +// +// group: stack +// +// ( any_1 any_2 -- any_1 any_2 any_1 ) +// +// Put a copy of the second-from-top element on the top-of-stack. +// +// example: +// +// 10 20 over # 10 20 10 +// +void gfx_prim_over() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id1, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy stack element +// +// group: stack +// +// ( any_n ... any_0 int_1 -- any_n ... any_0 any_n ) +// int_1: element position on stack (n is equal to int_1) +// +// Copy the int_1-th-from-top element on the top-of-stack. +// +// example: +// +// 10 20 30 40 3 index # 10 20 30 40 10 +// +// /dup { 0 index } def # definition of 'dup' +// +// /over { 1 index } def # definition of 'over' +// +void gfx_prim_index() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + int64_t *idx = gfx_obj_num_ptr(id1); + + if(!idx || *idx < 0) { + GFX_ERROR(err_invalid_range); + return; + } + + if(*idx + 2 > pstack->size) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id2 = pstack->ptr[pstack->size - 2 - *idx]; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id2, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_exec_id(obj_id_t dict_id, obj_id_t id, int on_stack) +{ + int64_t *val; + + if((val = gfx_obj_num_subtype_ptr(id, t_prim))) { + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_run_prim(*val); + } + else if(gfx_obj_mem_subtype_ptr(id, t_code)) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_func); + context_t *context = gfx_obj_context_ptr(context_id); + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + context->code_id = gfx_obj_ref_inc(id); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + if(dict_id) { + context->dict_id = gfx_obj_hash_new(0); + hash_t *hash = gfx_obj_hash_ptr(context->dict_id); + if(!hash) { + GFX_ERROR(err_no_memory); + return; + } + hash->parent_id = gfx_obj_ref_inc(dict_id); + } + + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } + else { + gfx_obj_ref_inc(id); + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// execute object +// +// group: loop +// +// ( ref_1 -- ) +// ref_1: word reference +// +// ( code_1 -- ) +// code_1: code block +// +// Executes the given code block or looks up and executes the word reference. +// +// example: +// +// { 10 20 } exec # 10 20 +// +// /foo "abc" def +// foo # "abc" +// /foo exec # "abc" +// +void gfx_prim_exec() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) return; + + if( + ptr->base_type == OTYPE_MEM && + (ptr->sub_type == t_word || ptr->sub_type == t_ref) + ) { + id = gfx_lookup_dict(OBJ_DATA_FROM_PTR(ptr)).id2; + } + + gfx_exec_id(0, id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// addition +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 + int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// ( array_1 array_2 -- array_3 ) +// array_3: array_2 appended to array_1 +// +// ( hash_1 hash_2 -- hash_3 ) +// hash_3: joined hash_1 and hash_2 +// +// ( string_1 string_2 -- string_3 ) +// string_3: string_2 appended to string_1 +// +// Add two numbers, or concatenate two arrays, or join two hashes, or concatenate two strings. +// +// For boolean 1 bit arithmetic this is equivalent to 'xor'. +// +// example: +// +// 10 20 add # 30 +// true true add # false +// [ 10 20 ] [ 30 40 ] add # [ 10 20 30 40 ] +// ( "foo" 10 ) ( "bar" 20 ) add # ( "bar" 20 "foo" 10 ) +// "abc" "def" add # "abcdef" +// +void gfx_prim_add() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + // FIXME: maybe allow 'mem_ref + int'? + + if(!ptr1 || !ptr2 || ptr1->base_type != ptr2->base_type) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t result_id = 0; + + switch(ptr1->base_type) { + case OTYPE_NUM: + { + int64_t result = ptr1->data.value + ptr2->data.value; + if(ptr1->sub_type == t_bool) result &= 1; + result_id = gfx_obj_num_new(result, ptr1->sub_type); + } + break; + + case OTYPE_MEM: + { + result_id = gfx_obj_mem_new(ptr1->data.size + ptr2->data.size); + obj_t *result_ptr = gfx_obj_ptr(result_id); + if(!result_ptr) { + GFX_ERROR(err_no_memory); + return; + } + result_ptr->sub_type = ptr1->sub_type; + gfx_memcpy(result_ptr->data.ptr, ptr1->data.ptr, ptr1->data.size); + gfx_memcpy(result_ptr->data.ptr + ptr1->data.size, ptr2->data.ptr, ptr2->data.size); + } + break; + + case OTYPE_ARRAY: + { + array_t *array1 = gfx_obj_array_ptr(id1); + array_t *array2 = gfx_obj_array_ptr(id2); + if(array1 && array2) { + result_id = gfx_obj_array_new(array1->size + array2->size + 0x10); + } + if(!result_id) { + GFX_ERROR(err_no_memory); + return; + } + obj_id_t val; + unsigned idx = 0; + while(gfx_obj_iterate(id1, &idx, &val, 0)) { + // note: reference counting for val has been done inside gfx_obj_iterate() + gfx_obj_array_push(result_id, val, 0); + } + idx = 0; + while(gfx_obj_iterate(id2, &idx, &val, 0)) { + // note: reference counting for val has been done inside gfx_obj_iterate() + gfx_obj_array_push(result_id, val, 0); + } + } + break; + + case OTYPE_HASH: + { + hash_t *hash1 = gfx_obj_hash_ptr(id1); + hash_t *hash2 = gfx_obj_hash_ptr(id2); + if(hash1 && hash2) { + result_id = gfx_obj_hash_new(hash1->size + hash2->size + 0x10); + } + if(!result_id) { + GFX_ERROR(err_no_memory); + return; + } + obj_id_t key, val; + unsigned idx = 0; + while(gfx_obj_iterate(id1, &idx, &key, &val)) { + // note: reference counting for key & val has been done inside gfx_obj_iterate() + gfx_obj_hash_set(result_id, key, val, 0); + } + idx = 0; + while(gfx_obj_iterate(id2, &idx, &key, &val)) { + // note: reference counting for key & val has been done inside gfx_obj_iterate() + gfx_obj_hash_set(result_id, key, val, 0); + } + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// subtraction +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 - int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// Subtract int_2 from int_1. +// +// For boolean 1 bit arithmetic this is equivalent to 'xor'. +// +// example: +// +// 100 30 sub # 70 +// false true sub # true +// +void gfx_prim_sub() +{ + binary_op_on_stack(op_sub); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// multiplication +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 * int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// Multiply int_1 by int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'and'. +// +// example: +// +// 20 30 mul # 600 +// true false mul # false +// +void gfx_prim_mul() +{ + binary_op_on_stack(op_mul); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// division +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 / int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 / bool_2 +// +// Divide int_1 by int_2. +// +// You can do a 1 bit division with boolean values. Note that this will run +// into a division by zero exception if bool_2 is false. +// +// example: +// +// 200 30 div # 6 +// true true div # true +// +void gfx_prim_div() +{ + binary_op_on_stack(op_div); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// remainder +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 % int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 / bool_2 +// +// int_3 is the remainder dividing int_1 by int_2. +// +// You can get the remainder from a 1 bit division with boolean values. Note +// that this will run into a division by zero exception if bool_2 is false. +// +// example: +// +// 200 30 mod # 20 +// true true mod # false +// +void gfx_prim_mod() +{ + binary_op_on_stack(op_mod); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// negation +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: -int_1 +// +// ( bool_1 -- bool_2 ) +// bool_2: -bool_1 +// +// Negate int_1 (change sign). +// +// For boolean 1 bit arithmetic the value is unchanged (this is not a 'not' operation). +// +// example: +// +// 20 neg # -20 +// true neg # true +// +void gfx_prim_neg() +{ + unary_op_on_stack(op_neg); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// absolute value +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: |int_1| +// +// ( bool_1 -- bool_2 ) +// bool_2: bool_1 +// +// Absolute value of int_1 (change sign if int_1 is negative). +// +// example: +// +// For boolean 1 bit arithmetic the value is unchanged. +// +// -20 abs # 20 +// true abs # true +// +void gfx_prim_abs() +{ + unary_op_on_stack(op_abs); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// minimum +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: minimum(int_1, int_2) +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// int_3 is the smaller value of int_1 and int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'and' +// +// example: +// +// 10 20 min # 10 +// true false min # false +// +void gfx_prim_min() +{ + binary_op_on_stack(op_min); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// maximum +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: maximum(int_1, int_2) +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 or bool_2 +// +// int_3 is the larger value of int_1 and int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'or' +// +// example: +// +// 10 20 max # 20 +// true false max # true +// +void gfx_prim_max() +{ + binary_op_on_stack(op_max); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// and +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 and int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// example: +// +// 15 4 and # 4 +// true false and # false +// +void gfx_prim_and() +{ + binary_op_on_stack(op_and); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// or +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 or int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 or bool_2 +// +// example: +// +// 15 4 or # 15 +// true false or # true +// +void gfx_prim_or() +{ + binary_op_on_stack(op_or); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// exclusive or +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 xor int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// example: +// +// 15 4 xor # 11 +// true false or # true +// +void gfx_prim_xor() +{ + binary_op_on_stack(op_xor); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// not +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: -int_1 - 1 +// +// ( bool_1 -- bool_2 ) +// bool_2: !bool_1 +// +// example: +// +// 20 not # -21 +// true not # false +// +void gfx_prim_not() +{ + unary_op_on_stack(op_not); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// shift left +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 << int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and !bool_2 +// +// example: +// +// 1 4 shl # 16 +// true false shl # true +// +void gfx_prim_shl() +{ + binary_op_on_stack(op_shl); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// shift right +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 >> int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and !bool_2 +// +// example: +// +// 16 4 shr # 1 +// true false shr # true +// +void gfx_prim_shr() +{ + binary_op_on_stack(op_shr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 == bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 == int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 == string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 == any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 eq # false +// true false eq # false +// "abc" "abc" eq # true +// [ 10 20 ] [ 10 20 ] eq # false +// 0 false eq # false +// 0 nil eq # false +// "abc" [ 10 ] eq # false +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar eq # true +// +void gfx_prim_eq() +{ + binary_cmp_on_stack(op_eq); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// not equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 != bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 != int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 != string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 != any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 ne # true +// true false ne # true +// "abc" "abc" ne # false +// [ 10 20 ] [ 10 20 ] ne # true +// 0 false ne # true +// 0 nil ne # true +// "abc" [ 10 ] ne # true +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar ne # false +// +void gfx_prim_ne() +{ + binary_cmp_on_stack(op_ne); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// greater than +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 > bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 > int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 > string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 > any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 gt # false +// true false gt # true +// "abd" "abc" gt # true +// [ 10 20 ] [ 10 20 ] gt # varies +// 0 false gt # varies +// 0 nil gt # varies +// "abc" [ 10 ] gt # varies +// +void gfx_prim_gt() +{ + binary_cmp_on_stack(op_gt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// greater or equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 >= bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 >= int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 >= string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 >= any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 ge # false +// true false ge # true +// "abd" "abc" ge # true +// [ 10 20 ] [ 10 20 ] ge # varies +// 0 false ge # varies +// 0 nil ge # varies +// "abc" [ 10 ] ge # varies +// +void gfx_prim_ge() +{ + binary_cmp_on_stack(op_ge); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// less than +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 < bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 < int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 < string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 < any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 lt # true +// true false lt # false +// "abd" "abc" lt # false +// [ 10 20 ] [ 10 20 ] lt # varies +// 0 false lt # varies +// 0 nil lt # varies +// "abc" [ 10 ] lt # varies +// +void gfx_prim_lt() +{ + binary_cmp_on_stack(op_lt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// less or equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 <= bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 <= int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 <= string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 <= any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 le # true +// true false le # false +// "abd" "abc" le # false +// [ 10 20 ] [ 10 20 ] le # varies +// 0 false le # varies +// 0 nil le # varies +// "abc" [ 10 ] le # varies +// +void gfx_prim_le() +{ + binary_cmp_on_stack(op_le); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// compare +// +// group: cmp +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 <=> int_2 +// +// ( bool_1 bool_2 -- int_4 ) +// int_4: bool_1 <=> bool_2 +// +// ( string_1 string_2 -- int_5 ) +// int_5: string_1 <=> string_2 +// +// ( any_1 any_2 -- int_6 ) +// int_6: any_1 <=> any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For +// all other combinations the internal object id is compared. +// +// The result is -1, 1, 0 if the first argument is less than, greater than, +// or equal to the second argument, respectively. +// +// example: +// +// 10 20 cmp # -1 +// true false cmp # 1 +// "abc" "abc" cmp # 0 +// [ 10 20 ] [ 10 20 ] cmp # varies +// 0 false cmp # varies +// 0 nil cmp # varies +// "abc" [ 10 ] cmp # varies +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar cmp # 0 +// +void gfx_prim_cmp() +{ + binary_cmp_on_stack(op_cmp); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int is_true(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + int val = 0; + + if(ptr) { + if(ptr->base_type == OTYPE_NUM) { + val = ptr->data.value ? 1 : 0; + } + else { + val = 1; + } + } + + return val; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +error_id_t do_op(op_t op, int64_t *result, int64_t val1, int64_t val2, unsigned sub_type) +{ + error_id_t err = 0; + + switch(op) { + case op_sub: + *result = val1 - val2; + break; + + case op_mul: + if(sub_type == t_bool) { + *result = (val1 & val2) & 1; + } + else { + *result = val1 * val2; + } + break; + + case op_div: + if(sub_type == t_bool) { + int i1 = val1 & 1; + int i2 = val2 & 1; + if(i2 == 0) { + err = err_div_by_zero; + } + else { + *result = i1; + } + } + else { + if( + val2 == 0 || + ((uint64_t) val1 == 0x8000000000000000ll && val2 == -1) + ) { + err = err_div_by_zero; + } + else { + *result = val1 / val2; + } + } + break; + + case op_mod: + if(sub_type == t_bool) { + int i1 = val1 & 1; + int i2 = val2 & 1; + if(i2 == 0) { + err = err_div_by_zero; + } + else { + *result = i1; + } + } + else { + if( + val2 == 0 || + ((uint64_t) val1 == 0x8000000000000000ll && val2 == -1) + ) { + err = err_div_by_zero; + } + else { + *result = val1 % val2; + } + } + break; + + case op_and: + *result = val1 & val2; + break; + + case op_or: + *result = val1 | val2; + break; + + case op_xor: + *result = val1 ^ val2; + break; + + case op_min: + *result = val1 < val2 ? val1 : val2; + break; + + case op_max: + *result = val1 > val2 ? val1 : val2; + break; + + case op_shl: + *result = val1 << val2; + break; + + case op_shr: + *result = val1 >> val2; + break; + + case op_neg: + *result = -val1; + break; + + case op_not: + *result = ~val1; + break; + + case op_abs: + *result = val1 > 0 ? val1 : -val1; + break; + + default: + *result = 0; + break; + } + + if(sub_type == t_bool) *result &= 1; + + return err; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void binary_op_on_stack(op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + if(!ptr1 || !ptr2 || ptr1->base_type != ptr2->base_type || ptr1->base_type != OTYPE_NUM) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t result; + + error_id_t err = do_op(op, &result, ptr1->data.value, ptr2->data.value, ptr1->sub_type); + + if(err) { + GFX_ERROR(err); + return; + } + + obj_id_t result_id = gfx_obj_num_new(result, ptr1->sub_type); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void unary_op_on_stack(op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t result; + + error_id_t err = do_op(op, &result, ptr->data.value, 0, ptr->sub_type); + + if(err) { + GFX_ERROR(err); + return; + } + + obj_id_t result_id = gfx_obj_num_new(result, ptr->sub_type); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void binary_cmp_on_stack(cmp_op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + int result = 0; + + if(id1 != 0 || id2 != 0) { + if(!ptr1 || !ptr2) { + result = id1 > id2 ? 1 : -1; + } + else if(ptr1->base_type != ptr2->base_type) { + result = ptr1->base_type > ptr2->base_type ? 1 : -1; + } + else { + switch(ptr1->base_type) { + case OTYPE_NUM: + if(ptr1->sub_type != ptr2->sub_type) { + result = ptr1->sub_type > ptr2->sub_type ? 1 : -1; + } + else { + if(ptr1->data.value != ptr2->data.value) { + result = ptr1->data.value > ptr2->data.value ? 1 : -1; + } + } + break; + + case OTYPE_MEM: + if(ptr1->sub_type != ptr2->sub_type) { + result = ptr1->sub_type > ptr2->sub_type ? 1 : -1; + } + else { + result = gfx_obj_mem_cmp(&ptr1->data, &ptr2->data); + } + break; + + default: + if(id1 != id2) { + result = id1 > id2 ? 1 : -1; + } + break; + } + } + } + + uint8_t subtype = t_bool; + + switch(op) { + case op_eq: + result = result == 0 ? 1 : 0; + break; + + case op_ne: + result = result != 0 ? 1 : 0; + break; + + case op_gt: + result = result > 0 ? 1 : 0; + break; + + case op_ge: + result = result >= 0 ? 1 : 0; + break; + + case op_lt: + result = result < 0 ? 1 : 0; + break; + + case op_le: + result = result <= 0 ? 1 : 0; + break; + + case op_cmp: + subtype = t_int; + break; + } + + obj_id_t result_id = gfx_obj_num_new(result, subtype); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get parent of context, font, or hash +// +// group: hash +// +// ( context_1 -- context_2 ) +// context_2: parent of context_1 or nil +// +// ( font_1 -- font_2 ) +// font_2: parent of font_1 or nil +// +// ( hash_1 -- hash_2 ) +// hash_2: parent of hash_1 or nil +// +// If a word lookup fails in a context, the lookup continues in the parent +// context. +// +// If a glyph lookup fails in a font, the lookup continues in the parent +// font. +// +// If a key cannot be found in a hash, the lookup continues in the parent +// hash. +// +// example: +// +// /x ( "foo" 10 "bar" 20 ) def +// /y ( "zap" 30 ) def +// x getparent # nil +// x y setparent +// x getparent # ( "zap" 30 ) +// +void gfx_prim_getparent() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t parent_id = 0; + + switch(ptr1->base_type) { + case OTYPE_HASH: + ; + hash_t *hash = OBJ_HASH_FROM_PTR(ptr1); + parent_id = hash->parent_id; + break; + + case OTYPE_FONT: + ; + font_t *font = OBJ_FONT_FROM_PTR(ptr1); + parent_id = font->parent_id; + break; + + case OTYPE_CONTEXT: + ; + context_t *ctx = OBJ_CONTEXT_FROM_PTR(ptr1); + parent_id = ctx->parent_id; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, parent_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set parent of context, font, or hash +// +// group: hash +// +// ( context_1 context_2 -- ) +// ( context_1 nil -- ) +// context_2: new parent of context_1 +// +// ( font_1 font_2 -- ) +// ( font_1 nil -- ) +// font_2: new parent of font_1 +// +// ( hash_1 hash_2 -- ) +// ( hash_1 nil -- ) +// hash_2: new parent of hash_1 +// +// If nil is used as second argument, any existing parent link is removed. +// +// If a word lookup fails in a context, the lookup continues in the parent +// context. +// +// If a glyph lookup fails in a font, the lookup continues in the parent +// font. +// +// If a key cannot be found in a hash, the lookup continues in the parent +// hash. +// +// example: +// +// /x ( "foo" 10 "bar" 20 ) def +// /y ( "zap" 30 ) def +// x "zap" get # nil +// x y setparent +// x "zap" get # 30 +// x nil setparent +// x "zap" get # nil +// +void gfx_prim_setparent() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + if(ptr1->flags.ro) { + GFX_ERROR(err_readonly); + return; + } + + obj_id_t old_parent_id = 0; + + switch(ptr1->base_type) { + case OTYPE_HASH: + if(id2 && !gfx_obj_hash_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + hash_t *hash = OBJ_HASH_FROM_PTR(ptr1); + old_parent_id = hash->parent_id; + hash->parent_id = gfx_obj_ref_inc(id2); + break; + + case OTYPE_FONT: + if(id2 && !gfx_obj_font_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + font_t *font = OBJ_FONT_FROM_PTR(ptr1); + old_parent_id = font->parent_id; + font->parent_id = gfx_obj_ref_inc(id2); + break; + + case OTYPE_CONTEXT: + if(id2 && !gfx_obj_context_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + context_t *ctx = OBJ_CONTEXT_FROM_PTR(ptr1); + old_parent_id = ctx->parent_id; + ctx->parent_id = gfx_obj_ref_inc(id2); + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_ref_dec(old_parent_id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get active dictionary +// +// group: hash +// +// ( -- hash_1 ) +// ( -- nil ) +// hash_1: dictionary +// +// Return the currently active dictionary or nil, if the current context +// does not (yet) have a dictionary. +// +// A dictionary will only be created on demand - that is, the first time a +// word is defined in the current context. +// +// When a program is started the global context is created containing a +// dictionary with all primitive words. +// +// example: +// +// /foo { getdict } def +// foo # nil +// +// /bar { /x 10 ldef getdict } def +// bar # ( /x 10 ) +// +void gfx_prim_getdict() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack) { + GFX_ERROR(err_stack_underflow); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, context->dict_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set active dictionary +// +// group: hash +// +// ( hash_1 -- ) +// ( nil -- ) +// hash_1: new active dictionary +// +// Set the currently active dictionary. With nil, the dictionary is removed +// from the current context. +// +// example: +// +// /foo { /x 10 ldef x } def +// foo # 10 +// +// /bar { ( /x 10 ) setdict x } def +// bar # 10 +// +void gfx_prim_setdict() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + if(id1 && !gfx_obj_hash_ptr(id1)) { + GFX_ERROR(err_invalid_arguments); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + OBJ_ID_ASSIGN(context->dict_id, id1); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// make object read-only +// +// group: mem +// +// ( any_1 -- any_1 ) +// +// Make any object read-only. A read-only object cannot be modified. +// +// Note that string constants are read-only by default. +// +// example: +// +// [ 10 20 30 ] freeze # [ 10 20 30 ] +// 0 delete # raises 'readonly' exception +// +void gfx_prim_freeze() +{ + arg_t *argv = gfx_arg_1(OTYPE_ANY | IS_NIL); + + if(!argv) return; + + if(argv[0].ptr) argv[0].ptr->flags.ro = 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing color +// +// group: gfx +// +// ( -- int_1 ) +// int_1: color +// +// Return current drawing color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// getcolor # 0xffffff (white) +// +void gfx_prim_getcolor() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->color : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing color +// +// group: gfx +// +// ( int_1 -- ) +// int_1: color +// +// Set current drawing color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// 0xff0000 setcolor # red +// +void gfx_prim_setcolor() +{ + arg_t *argv = gfx_arg_1(OTYPE_NUM); + + if(!argv) return; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gstate->color = OBJ_VALUE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get background color +// +// group: gfx +// +// ( -- int_1 ) +// int_1: color +// +// Return current background color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// getcolor # 0 (black) +// +void gfx_prim_getbgcolor() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->bg_color : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set background color +// +// group: gfx +// +// ( int_1 -- ) +// int_1: color +// +// Set current background color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// 0xff00 setcolor # green +// +void gfx_prim_setbgcolor() +{ + arg_t *argv = gfx_arg_1(OTYPE_NUM); + + if(!argv) return; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gstate->bg_color = OBJ_VALUE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing position +// +// group: gfx +// +// ( -- int_1 int_2 ) +// int_1: x +// int_2: y +// +// Return current drawing position. The position is relative to the drawing region in the graphics state. +// +// example: +// +// getpos # 0 0 +// +void gfx_prim_getpos() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->pos.x : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->pos.y : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing position +// +// group: gfx +// +// ( int_1 int_2 -- ) +// int_1: x +// int_2: y +// +// Set drawing position. The position is relative to the drawing region in the graphics state. +// +// example: +// +// 20 30 setpos +// +void gfx_prim_setpos() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gstate->pos.x = val1; + gstate->pos.y = val2; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get font +// +// group: gfx +// +// ( gstate_1 -- font_1 ) +// ( gstate_1 -- nil ) +// gstate_1: graphics state +// font_1: font +// +// Get font from graphics state. +// +// example: +// +// getgstate getfont # current font +// +void gfx_prim_getfont() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate->font_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set font +// +// group: gfx +// +// ( gstate_1 font_1 -- ) +// ( gstate_1 nil -- ) +// gstate_1: graphics state +// font_1: font +// +// Set font in graphics state. If nil is passed, any font is removed from the graphics state. +// +// example: +// +// /foo_font "foo.fnt" readfile newfont def +// getgstate foo_font setfont # use "foo.fnt" +// +void gfx_prim_setfont() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_FONT | IS_NIL }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + OBJ_ID_ASSIGN(gstate->font_id, argv[1].id); + + area_t area = gfx_font_dim(gstate->font_id); + + gstate->pos.width = area.width; + gstate->pos.height = area.height; + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create font object +// +// group: gfx +// +// ( string_1 -- font_1 ) +// ( string_1 -- nil ) +// string_1: font data +// font_1: font object +// +// Parse font data in string_1 and create font object. If string_1 does not +// contain valid font data, return nil. +// +// example: +// +// /foo_font "foo.fnt" readfile newfont def # create font from file "foo.fnt" +// +void gfx_prim_newfont() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + obj_id_t font_id = gfx_obj_font_open(argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, font_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing region +// +// group: gfx +// +// ( gstate_1 -- int_1 int_2 int_3 int_4 ) +// gstate_1: graphics state +// int_1: x +// int_2: y +// int_3: width +// int_4: height +// +// Get drawing region associated with graphics state. Any drawing operation +// will be relative to this region. Graphics output will be clipped at the +// region boundaries. +// +// example: +// +// getgstate getregion # 0 0 800 600 +// +void gfx_prim_getregion() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.x : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.y : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.width : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.height : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing region +// +// group: gfx +// +// ( gstate_1 int_1 int_2 int_3 int_4 -- ) +// gstate_1: graphics state +// int_1: x +// int_2: y +// int_3: width +// int_4: height +// +// Set drawing region associated with graphics state. Any drawing operation +// will be relative to this region. Graphics output will be clipped at the +// region boundaries. +// +// example: +// +// getgstate 10 10 200 100 setregion +// +void gfx_prim_setregion() +{ + arg_t *argv = gfx_arg_n(5, (uint8_t [5]) { OTYPE_GSTATE, OTYPE_NUM, OTYPE_NUM, OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[2].ptr); + int64_t val3 = OBJ_VALUE_FROM_PTR(argv[3].ptr); + int64_t val4 = OBJ_VALUE_FROM_PTR(argv[4].ptr); + + area_t area = { .x = val1, .y = val2, .width = val3, .height = val4 }; + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + if(canvas) { + area_t clip = { .width = canvas->width, .height = canvas->height }; + gfx_clip(&area, &clip); + } + gstate->region = area; + + gfx_obj_array_pop_n(5, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create canvas +// +// group: gfx +// +// ( int_1 int_2 -- canvas_1 ) +// int_1: width +// int_2: height +// +// Create a new empty canvas of the specified size. +// +// example: +// +// 800 600 canvas +// +void gfx_prim_canvas() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_canvas_new(val1, val2), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get canvas +// +// group: gfx +// +// ( gstate_1 -- canvas_1 ) +// ( gstate_1 -- nil ) +// gstate_1: graphics state +// canvas_1: canvas object +// +// Get canvas object from graphics state. A canvas is a memory area with +// associated width and height. All drawing operations are done on canvas +// objects. If no canvas is associated with the graphics state, return nil. +// +// example: +// +// getgstate getcanvas dim # 800 600 +// +void gfx_prim_getcanvas() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate->canvas_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set canvas +// +// group: gfx +// +// ( gstate_1 canvas_1 -- ) +// ( gstate_1 nil -- ) +// gstate_1: graphics state +// canvas_1: canvas object +// +// Set canvas of graphics state. A canvas is a memory area with +// associated width and height. All drawing operations are done on canvas +// objects. If nil is passed, the canvas is removed from the graphics state. +// +// The drawing region of gstate_1 is adjusted to match the canvas size. The +// drawing position is reset to x = 0, y = 0. +// +// example: +// +// getgstate 800 600 canvas setcanvas +// +void gfx_prim_setcanvas() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_CANVAS | IS_NIL }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + OBJ_ID_ASSIGN(gstate->canvas_id, argv[1].id); + + if(argv[1].id) { + canvas_t *canvas = OBJ_CANVAS_FROM_PTR(argv[1].ptr); + + gstate->region = (area_t) {0, 0, canvas->width, canvas->height}; + gstate->pos.x = gstate->pos.y = 0; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics state +// +// group: gfx +// +// ( -- gstate_1 ) +// ( -- nil ) +// +// Get current graphics state. If none has been set, return nil. +// +// The graphics state consists of a canvas to draw into, a region describing +// a rectangular drawing and clipping area in that canvas, a drawing +// position (relative to the drawing region), drawing color, background +// color (for text), and a text font. +// +// example: +// +// /saved_state getgstate def # save current graphics state +// +void gfx_prim_getgstate() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfxboot_data->gstate_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set graphics state +// +// group: gfx +// +// ( gstate_1 -- ) +// ( nil -- ) +// +// Set current graphics state. If nil is passed, the current state is removed. +// +// The graphics state consists of a canvas to draw into, a region describing +// a rectangular drawing and clipping area in that canvas, a drawing +// position (relative to the drawing region), drawing color, background +// color (for text), and a text font. +// +// example: +// +// /saved_state getgstate def # save current graphics state +// ... +// saved_state setgstate # restore saved graphics state +// +void gfx_prim_setgstate() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE | IS_NIL); + + if(!argv) return; + + OBJ_ID_ASSIGN(gfxboot_data->gstate_id, argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create graphics state +// +// group: gfx +// +// ( -- gstate_1 ) +// +// Create a new empty graphics state gate_1. +// +// example: +// +// gstate +// +void gfx_prim_gstate() +{ + obj_id_t gstate_id = gfx_obj_gstate_new(); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics state of the debug console +// +// group: gfx +// +// ( -- gstate_1 ) +// ( -- nil ) +// +// Get graphics state of the debug console. If none has been set, return nil. +// +// example: +// +// /saved_state getconsolegstate def # save current debug console state +// +void gfx_prim_getconsolegstate() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfxboot_data->console.gstate_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set graphics state of the debug console +// +// group: gfx +// +// ( gstate_1 -- ) +// ( nil -- ) +// +// Set graphics state of the debug console. If nil is passed, the current state is removed. +// +// example: +// +// /saved_state getconsolegstate def +// ... +// saved_state setconsolegstate # restore saved debug console state +// +void gfx_prim_setconsolegstate() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE | IS_NIL); + + if(!argv) return; + + OBJ_ID_ASSIGN(gfxboot_data->console.gstate_id, argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// show +// +// group: gfx +// +// ( string_1 -- ) +// +// Print string_1 at current cursor position in canvas associated with +// current graphics state. +// +// The cursor position is advanced to point at the end of the printed text. +// Newline ('\x0a') and carriage return ('\x0d') characters are interpreted +// and the cursor position is adjusted relative to the starting position. +// +// example: +// +// "Hello!" show # print "Hello!" +// +void gfx_prim_show() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + data_t *data = OBJ_DATA_FROM_PTR(argv[0].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gfx_puts(gstate, data->ptr, data->size); + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics object dimension +// +// group: gfx +// +// ( canvas_1 -- int_1 int_2 ) +// ( font_1 -- int_1 int_2 ) +// ( gstate_1 -- int_1 int_2 ) +// int_1: width +// int_2: height +// +// Get dimension of graphics object. For a canvas it is its size, for a +// graphics state it is the size of the associated region, for a fixed size +// font it is its glyph size, for proportional font the width is 0 and the +// height is the font height. +// +// example: +// +// getconsolegstate getcanvas dim # 800 600 +// getconsolegstate dim # 640 480 +// getconsolegstate getfont dim # 8 16 +// +void gfx_prim_dim() +{ + arg_t *argv = gfx_arg_1(OTYPE_ANY); + + if(!argv) return; + + area_t area; + + switch(argv[0].ptr->base_type) { + case OTYPE_FONT: + area = gfx_font_dim(argv[0].id); + break; + + case OTYPE_CANVAS: + ; + canvas_t *canvas = OBJ_CANVAS_FROM_PTR(argv[0].ptr); + area.width = canvas->width; + area.height = canvas->height; + break; + + case OTYPE_GSTATE: + ; + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + area.width = gstate->region.width; + area.height = gstate->region.height; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(area.width, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(area.height, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// run code +// +// group: loop +// +// ( string_1 -- ) +// string_1: binary code +// +// Load binary code and run it. +// +// Note: unlike 'exec' this does not open a new context but replaces the +// currently running code with the new one. +// +// example: +// +// "new_program" readfile run +// +void gfx_prim_run() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + if(!gfx_is_code(argv[0].id)) { + GFX_ERROR(err_invalid_code); + + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + + return; + } + + OBJ_ID_ASSIGN(context->code_id, argv[0].id); + + context->ip = context->current_ip = 0; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// read file +// +// group: mem +// +// ( string_1 -- string_2 ) +// ( string_1 -- nil ) +// string_1: file name +// string_2: file content +// +// Read entire file and return its content. If the file could not be read, return nil. +// +// example: +// +// "foo" readfile +// +void gfx_prim_readfile() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + // interface expects 0-terminated string + // so we create a 1 byte larger copy + obj_id_t tmp_id = gfx_obj_mem_dup(argv[0].id, 1); + data_t *data = gfx_obj_mem_ptr(tmp_id); + + if(!data) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t file_id = gfx_read_file(data->ptr); + + gfx_obj_ref_dec(tmp_id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, file_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// unpack image +// +// group: gfx +// +// ( string_1 -- canvas_1 ) +// ( string_1 -- nil ) +// string_1: image file data +// +// Unpacks image and returns a canvas object with the image or nil if the +// data dos not contain image data. +// +// example: +// +// "foo.jpg" readfile unpackimage +// +void gfx_prim_unpackimage() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + obj_id_t image_id = gfx_image_open(argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, image_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy rectangular region +// +// group: gfx +// +// ( gstate_1 gstate_2 -- ) +// +// Copy from the drawing region of gstate_2 to the drawing region of gstate_1, at the drawing pos of gstate_1. +// +// example: +// +// /cat_pic gstate def +// cat_pic "cat.jpg" readfile unpackimage setcanvas +// 0 0 setpos getgstate cat_pic blt # show cat picture +// +void gfx_prim_blt() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_GSTATE }); + + if(!argv) return; + + gstate_t *gstate1 = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + gstate_t *gstate2 = OBJ_GSTATE_FROM_PTR(argv[1].ptr); + + area_t area2 = gstate2->region; + area_t area1 = { + .x = gstate1->region.x + gstate1->pos.x, + .y = gstate1->region.y + gstate1->pos.y, + .width = area2.width, + .height = area2.height + }; + +#if 0 + gfxboot_serial(4, "blt area1 %dx%d_%dx%d, area2 %dx%d_%dx%d\n", + area1.x, area1.y, area1.width, area1.height, + area2.x, area2.y, area2.width, area2.height + ); +#endif + + area_t diff = gfx_clip(&area1, &gstate1->region); + + ADD_AREA(area2, diff); + +#if 0 + gfxboot_serial(4, "blt clipped area1 %dx%d_%dx%d\n", + area1.x, area1.y, area1.width, area1.height + ); +#endif + + gfx_blt(1, gstate1->canvas_id, area1, gstate2->canvas_id, area2); + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start debug console +// +// group: def +// +// ( -- ) +// +// Stop code execution and start debug console. +// +// You can leave (and re-enter) the debug console with `^D` but note that this +// doesn't resume program execution. Use the `run` (or `r`) console command for this. +// +// example: +// +// /foo { debug 10 20 } def +// foo # activate debug console when 'foo' is run +// +void gfx_prim_debug() +{ + gfxboot_data->vm.program.stop = 1; + gfx_program_debug_on_off(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// read pixel +// +// group: gfx +// +// ( -- int_1 ) +// ( -- nil ) +// int_1: color +// +// Read pixel at drawing position from canvas in current graphics state. If +// the position is outside the drawing region, return nil. +// +// example: +// +// getpixel +// +void gfx_prim_getpixel() +{ + obj_id_t val = 0; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate ? gstate->canvas_id : 0); + + if(canvas) { + color_t color; + if(gfx_getpixel(gstate, canvas, gstate->pos.x, gstate->pos.y, &color)) { + val = gfx_obj_num_new(color, t_int); + } + } + } + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set pixel +// +// group: gfx +// +// ( -- ) +// +// Set pixel with current color at drawing position in canvas in current +// graphics state. If the position is outside the drawing region, nothing is +// drawn. +// +// example: +// +// setpixel +// +void gfx_prim_putpixel() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + gfx_putpixel(gstate, canvas, gstate->pos.x, gstate->pos.y, gstate->color); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// draw line +// +//group: gfx +// +// ( int_1 int_2 -- ) +// int_1: x +// int_2: y +// +// Draw line from current position to the specified x and y coordinates +// using the current color. The drawing position is updated to the end +// position. Line segments outside the drawing region are not drawn. +// +// example: +// +// 100 200 lineto +// +void gfx_prim_lineto() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + gfx_line(gstate, canvas, gstate->pos.x, gstate->pos.y, val1, val2, gstate->color); + } + + gstate->pos.x = val1; + gstate->pos.y = val2; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// draw filled rectangle +// +// group: gfx +// +// ( int_1 int_2 -- ) +// int_1: width +// int_2: height +// +// Draw filled rectangle (using current color) at current position. The +// rectangle is clipped at the current drawing region. +// +// example: +// +// 200 100 fillrect +// +void gfx_prim_fillrect() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gfx_rect(gstate, gstate->pos.x, gstate->pos.y, val1, val2, gstate->color); + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// decode Unicode string +// +// group: mem +// +// (string_1 -- array_1 ) +// string_1: UTF8-encoded string +// array_1: array with decoded chars +// +// The array contains one element for each UTF8-encoded char. If string_1 +// contains non-UTF8-chars they are represented as the negated 8-bit value. +// +// example: +// +// "ABC" utf8decode # [ 65 66 67 ] +// "Ä €" utf8decode # [ 196 32 8364 ] +// "A\xf0B" utf8decode # [ 65 -240 66 ] +// +void gfx_prim_utf8decode() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + data_t *mem = OBJ_DATA_FROM_PTR(argv[0].ptr); + + char *data = (char *) mem->ptr; + unsigned data_len = mem->size; + + unsigned uni_len = 0; + while(data_len) { + uni_len++; + gfx_utf8_dec(&data, &data_len); + } + + obj_id_t array_id = gfx_obj_array_new(uni_len); + if(!array_id) { + GFX_ERROR(err_no_memory); + return; + } + + data = (char *) mem->ptr; + data_len = mem->size; + + int i = 0; + while(data_len) { + int c = gfx_utf8_dec(&data, &data_len); + gfx_obj_array_set(array_id, gfx_obj_num_new(c, t_int), i++, 0); + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, array_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// encode Unicode string +// +// group: mem +// +// (array_1 -- string_1 ) +// array_1: array with decoded chars +// string_1: UTF8-encoded string +// +// The array contains one element for each UTF8-encoded char. If string_1 +// should contain non-UTF8-chars they are represented as the negated 8-bit +// value in array_1. +// +// example: +// +// [ 65 66 67 ] utf8encode # "ABC" +// [ 196 32 8364 ] utf8encode # "Ä €" +// [ 65 -240 66 ] utf8encode # "A\xf0B" +// +void gfx_prim_utf8encode() +{ + arg_t *argv = gfx_arg_1(OTYPE_ARRAY); + + if(!argv) return; + + obj_id_t array_id = argv[0].id; + unsigned array_size = OBJ_ARRAY_FROM_PTR(argv[0].ptr)->size; + + obj_id_t mem_id = gfx_obj_mem_new(array_size*6); + if(!mem_id) { + GFX_ERROR(err_no_memory); + return; + } + + obj_t *ptr = gfx_obj_ptr(mem_id); + ptr->sub_type = t_string; + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + uint8_t *data = (uint8_t *) mem->ptr; + + for(int i = 0; i < (int) array_size; i++) { + int64_t *val = gfx_obj_num_ptr(gfx_obj_array_get(array_id, i)); + + if(!val) { + gfx_obj_ref_dec(mem_id); + GFX_ERROR(err_invalid_data); + return; + } + + if(*val <= 0) { + *data++ = -*val; + } + else { + uint8_t *str = gfx_utf8_enc(*val); + while(*str) *data++ = *str++; + } + } + + gfx_obj_realloc(mem_id, data - (uint8_t *) mem->ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, mem_id, 0); +} diff --git a/git2log b/git2log new file mode 100755 index 0000000..2032a05 --- /dev/null +++ b/git2log @@ -0,0 +1,1041 @@ +#! /usr/bin/perl + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# This script is maintained at https://github.com/openSUSE/linuxrc-devtools +# +# If you're in another project, this is just a copy. +# You may update it to the latest version from time to time... +# +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +use strict; + +use Getopt::Long; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub usage; +sub changelog_outdated; +sub get_github_project; +sub get_version; +sub get_tags; +sub get_log; +sub is_formatted_tag; +sub get_branch; +sub choose_tags; +sub add_head_tag; +sub tags_to_str; +sub format_log; +sub format_all_logs; +sub fix_dates; +sub add_line_breaks; +sub add_bugzilla_to_weblate; +sub format_date_obs; +sub format_date_iso; +sub raw_date_to_s; + +usage 0 if !@ARGV; + +my @changelog_deps = qw ( .git/HEAD .git/refs/heads .git/refs/tags ); + +my $branch; +my $current_version; +my @tags; +my @all_tags; +my $config; + +my $opt_log; +my $opt_version; +my $opt_branch; +my $opt_update; +my $opt_file; +my $opt_start; +my $opt_max; +my $opt_width = 66; +my $opt_width_fuzz = 8; +my $opt_sep_width = 68; +my $opt_format = 'internal'; # obs, internal +my $opt_merge_msg_before = 1; # log auto generated pr merge message before the commit messages (vs. after) +my $opt_join_author = 1; # join consecutive commit messages as long as they are by the same author +my $opt_keep_date = 1; # don't join consecutive commit messages if they have different time stamps +my $opt_default_email = 'opensuse-packaging@opensuse.org'; # default email to use in changelog +my $opt_weblate = 'bsc#1149754'; # bugzilla ref to use for Weblate commits + +GetOptions( + 'help' => sub { usage 0 }, + 'version' => \$opt_version, + 'branch' => \$opt_branch, + 'update' => \$opt_update, + 'start=s' => \$opt_start, + 'format=s' => \$opt_format, + 'max=i' => \$opt_max, + 'width=i' => \$opt_width, + 'fuzz=i' => \$opt_width_fuzz, + 'merge-msg=s' => sub { $opt_merge_msg_before = ($_[1] eq 'after' ? 0 : 1) }, + 'join-author!' => \$opt_join_author, + 'keep-date!' => \$opt_keep_date, + 'log|changelog' => \$opt_log, + 'default-email=s' => \$opt_default_email, + 'weblate=s' => \$opt_weblate, +) || usage 1; + +# ensure we are used correctly +usage 1 if @ARGV > 1 || !($opt_log || $opt_version || $opt_branch); +$opt_file = @ARGV ? shift : '-'; + +die "no git repo\n" unless -d ".git"; + +# if update option has been give write changelog only if git refs are newer +exit 0 if $opt_update && $opt_file ne '-' && -f($opt_file) && !changelog_outdated($opt_file); + +$opt_max = 2 if $opt_version || $opt_branch; + +# gather some data +get_github_project; +get_branch; +get_log; +fix_dates; +get_tags; +choose_tags; +add_head_tag; +get_version; + +# just print current branch +if($opt_branch) { + open my $f, ">$opt_file"; + print $f $config->{branch} ? $config->{branch} : "master", "\n"; + close $f; + + exit 0; +} + +# just print current version +if($opt_version) { + my $old_version; + + if($opt_file ne '-' && open(my $f, $opt_file)) { + chomp($old_version = <$f>); + close $f; + } + + if($config->{version} ne $old_version) { + open my $f, ">$opt_file"; + print $f "$config->{version}\n"; + close $f; + } + + exit 0; +} + +# set start tag +if($opt_start) { + my $x = is_formatted_tag $opt_start; + die "$opt_start: not a valid start tag\n" if !$x; + $x->{branch} = $config->{branch} if !$x->{branch}; + $config->{start} = $x; +} + +format_all_logs; + +open my $f, ">$opt_file"; + +print $f $_->{formatted} for @{$config->{log}}; + +close $f; + +exit 0; + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# usage(exit_code) +# +# Print help message and exit. +# - exit_code: exit code +# +# Function does not return. +# +sub usage +{ + my $err = shift; + + print <<" usage"; +Usage: git2log [OPTIONS] [FILE] +Create changelog and project version from git repo. + --changelog Write changelog to FILE. + --version Write version number to FILE. + --branch Write current branch to FILE. + --start START_TAG Start with tag START_TAG. + --max N Write at most N log entries. + --update Write changelog or version only if FILE is outdated. + --format FORMAT Write log using FORMAT. Supported FORMATs are 'internal' (default) and 'obs'. + --width WIDTH Reformat log entries to be max WIDTH chars wide. + --fuzz FUZZ Allow log lines to be up to FUZZ chars longer as WIDTH to avoid + line breaks leaving tiny bits on the last line. + --merge-msg WHERE Log message about merges before or after the actual merge commit messages. + Valid values for WHERE are 'after' and 'before' (default). + --join-author Join consecutive commits as long as they are by the same author. (default) + --no-join-author Keep consecutive commits by the same author separate. + --keep-date Join consecutive commits only if they have the same date. (default) + --no-keep-date Join consecutive commits even if dates differ. + --default-email Use this email in changelog entries if no other suitable email could be + determined (default: opensuse-packaging\@opensuse.org). + --weblate STRING Add this STRING to every auto-generated Weblate commit. + --help Print this help text. + usage + + exit $err; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# res = changelog_outdated(file) +# +# Return status of changelog file. +# - file: changelog file name +# - res: status +# 1: file is newer than the last git repo change and should be updated +# 0: file is still recent enough +# +# Relies on global var @changelog_deps. +# +sub changelog_outdated +{ + my $file = $_[0]; + + my $changelog_time = (stat $file)[9]; + + return 1 if !defined $changelog_time; + + for (@changelog_deps) { + return 1 if (stat)[9] > $changelog_time; + } + + return 0; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_github_project() +# +# Set $config->{github_project} to the github project name. +# +sub get_github_project +{ + if(`git config remote.origin.url` =~ m#github.com[:/]+(\S+/\S+)#) { + $config->{github_project} = $1; + $config->{github_project} =~ s/\.git$//; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_version() +# +# Set $config->{branch} and $config->{version} to the current branch and +# version info. +# +# This might be taken directly from HEAD if HEAD is tagged or otherwise be +# exprapolated from the most recent tag (cf. add_head_tag()). +# +sub get_version +{ + $config->{version} = "0.0"; + + my $tag = $config->{log}[0]{tags}[0]; + + if($tag->{version}) { + $config->{version} = $tag->{version}; + $config->{branch} = $tag->{branch}; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_tags() +# +# Parse $config->{raw_log}, extract tag names, and split into per-tag +# sections. +# +# Only tags recognized by is_formatted_tag() are considered. +# +# Tags inside merge commits are ignored. +# +# The parsed logs is stored in $config->{log}, an array of log sections. +# Each section is a hash with these keys: +# - 'tags': array of tags for this section +# - 'commit': git commit id associated with these tags +# - 'lines': git log lines +# +sub get_tags +{ + my $log_entry; + + # the end of the merge commit if in a merge + my $merge; + + for (@{$config->{raw_log}}) { + if(/^commit (\S+)( \((.*)\))?/) { + my $commit = $1; + my $tag_list = $3; + my $xtag; + + # we have reached the end of the merge commit + undef $merge if $merge && $commit =~ /^$merge/; + + # ignore tag info inside a merge commit + $tag_list = "" if $merge; + + for my $t (split /, /, $tag_list) { + if($t =~ /tag: (\S+)/) { + my $tag = $1; + my $x = is_formatted_tag $tag; + push @$xtag, $x if $x; + } + } + + if($xtag) { + if($log_entry) { + push @{$config->{log}}, $log_entry; + last if $opt_max && @{$config->{log}} >= $opt_max; + } + $log_entry = { commit => $commit, tags => $xtag }; + } + else { + $log_entry = { commit => $commit } if !$log_entry; + } + } + elsif(!$merge && /^Merge: (\S+)/) { + # remember end of merge + $merge = $1; + } + + push @{$log_entry->{lines}}, $_ if $log_entry; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_log() +# +# Read git log and store lines as array in $config->{raw_log} (trailing +# newlines removed). +# +sub get_log +{ + chomp(@{$config->{raw_log}} = `git log --pretty=medium --date=raw --topo-order --decorate`); +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# hash_ref = is_formatted_tag(tag_name) +# +# Parse tag and return hash ref with branch and version number parts or +# undef if it doesn't match. +# - tag_name: tag as string +# - hash_ref: hash ref with internal tag representation (with keys 'branch' and 'version'). +# +# This expects tags of the form "VERSION" or "BRANCH-VERSION" where VERSION +# consists of decimal numbers separated by dots '.' and BRANCH can be any +# string. +# (Note: it doesn't really have to be the name of an existing branch.) +# +# Tags not conforming to this convention are ignored. +# +sub is_formatted_tag +{ + if($_[0] =~ /^((.+)-)?((\d+\.)*\d+)$/) { + return { branch => $2, version => $3 } + } + + return undef; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_branch() +# +# Get currently active git branch and store in $config->{branch}. +# +# 'master' branch is represented by empty 'branch' key. +# +sub get_branch +{ + chomp(my $branch = `git rev-parse --abbrev-ref HEAD`); + + $branch = "" if $branch eq 'master'; + + $config->{branch} = $branch; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# res = tag_sort(a, b) +# +# Compare 2 tags. +# - a, b: refs to tag hash +# - res: -1, 0, 1 +# +# This is used when we have to decide between alternative tags. +# (Prefer 'lesser' variant.) +# +sub tag_sort +{ + my ($x, $y); + + $x = length $a->{version}; + $y = length $b->{version}; + + # longer version number first + return $y <=> $x if $y <=> $x; + + return $a->{branch} cmp $b->{branch}; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# str = tag_to_str(tag_ref) +# +# Convert tag into string. +# - tag_ref: ref to hash with 'branch' and 'version' keys +# - str: string (e.g. "foo-1.44") +# +# 'master' branch is represented by missing/empty 'branch' key. +# +sub tag_to_str +{ + my $tag = $_[0]; + my $str; + + $str = "$tag->{branch}-" if $tag->{branch} ne ""; + $str .= $tag->{version}; + + return $str; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# str = tags_to_str(tag_array_ref) +# +# Convert array of tags into string. +# - tag_array_ref: ref to array of tags +# - str: string (e.g. "(tag1, tag2)" +# +# This function is used only internally for debugging. +# +sub tags_to_str +{ + my $tags = $_[0]; + my $str; + + for my $t (@$tags) { + $str .= ", " if $str; + $str .= tag_to_str $t; + } + + return "($str)"; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# choose_tags() +# +# Scan commit messages and extract tag & branch information. +# +# This stores the tag/branch info in $config->{log}[]{tags}. +# +sub choose_tags +{ + my $branch = $config->{branch}; + + for my $x (@{$config->{log}}) { + # printf "# %s\n", tags_to_str($x->{tags}); + + # no tag info? -> ignore + next if !$x->{tags}; + + # single tag? -> remember branch info + if(@{$x->{tags}} == 1) { + $branch = $x->{tags}[0]{branch}; + next; + } + + # several tags? -> choose one + + # any with current branch name? + my @t = grep { $_->{branch} eq $branch } @{$x->{tags}}; + + # no? -> choose among all + @t = @{$x->{tags}} if @t == 0; + + # prefer longest version number, then alphanumerically smallest branch name + @t = sort tag_sort @t; + + $branch = $t[0]{branch}; + + # Here's some magic: + # + # If a commit is tagged "FOO-X.Y" *and* "FOO-X.Y.0" assume the user + # wants to start a new sub-numbering scheme. + # + # Use "X.Y" as version but remember to go to "X.Y.1" when we need to + # increment the version. + # + my $version = $t[0]{version}; + if($version =~ s/\.0$//) { + if(grep { $_->{branch} eq $branch && $_->{version} eq $version } @t) { + $t[0]{new_start} = 1; + $t[0]{version} = $version; + } + } + + $x->{tags} = [ $t[0] ]; + + # printf "X %s\n", tags_to_str($x->{tags}); + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# add_head_tag() +# +# Suggest tag for HEAD if there isn't one. +# +# Basically, use branch + version from most recent tag and increment version. +# +# If the 'new_start' attribute to tag is set, start a new sub-numbering scheme. +# +sub add_head_tag +{ + return if @{$config->{log}} < 2; + + # HEAD tagged already? + return if $config->{log}[0]{tags}; + + # the first tagged commit if HEAD isn't tagged + my $tag = { %{$config->{log}[1]{tags}[0]} }; + + # append '.0' to version + $tag->{version} .= '.0' if $tag->{new_start}; + + # increment version + $tag->{version} =~ s/(\d+)$/$1 + 1/e; + + $config->{log}[0]{tags}[0] = $tag; + + # remember that the tag was generated + $config->{log}[0]{was_untagged} = 1; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# fix_dates() +# +# Adjust time stamps in entire git log. +# +# The time stamps of the git commits are not necessarily ordered by date. +# But the generated changelog is required to have a strictly monotonic time. +# +# We do this by going through the log in reverse and rewriting any dates we +# find whenever the date decreases. +# +# A minimum time difference of 1 second beween entries is maintained. +# +# Not very subtle but it works. +# +sub fix_dates +{ + my $last_date; + + for (reverse @{$config->{raw_log}}) { + # e.g. "Date: 1443184889 +0200" + if(/^(Date:\s+)(\S+)(\s+\S+)/) { + if(defined $last_date && $2 < $last_date) { + $_ = "$1$last_date$3\n"; + } + else { + $last_date = $2; + } + + # ensure a minimal time gap of 1 second + $last_date += 1; + } + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# format_all_logs() +# +# Format the entire git log. +# +# This is done for every code version individually (the log has already been +# split accordingly). +# +# If $config->{start} is set, use this as starting point. Else format the +# entire git log. +# +sub format_all_logs +{ + # check if start tag actually exists - if not, print nothing + if($config->{start}) { + my $tag_found; + for (@{$config->{log}}) { + $tag_found = 1, last if grep { tag_to_str($config->{start}) eq tag_to_str($_) } @{$_->{tags}}; + } + return if !$tag_found; + } + + for (@{$config->{log}}) { + if($config->{start}) { + # stop if we meet the start tag + last if grep { tag_to_str($config->{start}) eq tag_to_str($_) } @{$_->{tags}}; + } + format_log $_; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# format_log(log) +# +# Format log messages. +# - log: is an array ref with individual commits +# +# All commits belong to a specific code version (stored in $log->{tag}). +# $log->{formatted} holds the result. +# +# The process is done in several individual steps, documented below in the code. +# +sub format_log +{ + my $log = $_[0]; + + my $merge; + my $commit; + my $commits; + + for (@{$log->{lines}}) { + if(/^commit (\S+)/) { + $commit = { ref => $1 }; + push @{$commits}, $commit; + + if( + $merge && + $merge->{merge_end} eq substr($commit->{ref}, 0, length($merge->{merge_end})) + ) { + undef $merge; + } + + if($merge) { + $commit->{merge_ref} = $merge->{ref}; + $commit->{date} = $merge->{date}; + $commit->{author} = $merge->{author}; + # add to all commits so it's not lost when we re-arrange + $commit->{merge_msg} = $merge->{msg}; + } + + next; + } + + if(/^Merge: (\S+)/ && !$merge) { + if($commit) { + $merge = { merge_end => $1, ref => $commit->{ref} } unless $merge; + } + next; + } + + if(/^Date:\s+(\S.*)/) { + $commit->{date} ||= $1 if $commit; + $merge->{date} ||= $1 if $merge; + next; + } + + if(/^Author:\s+(\S.*)/) { + $commit->{author} ||= $1 if $commit; + $merge->{author} ||= $1 if $merge; + next; + } + + if($merge) { + if(/^ Merge pull request (#\d+) from (\S+)/) { + if($config->{github_project}) { + push @{$merge->{msg}}, "merge gh#$config->{github_project}$1"; + } + else { + push @{$merge->{msg}}, "merge pr $2"; + } + } + elsif(/^ Merge branch '([^']+)'( into)?/) { + push @{$merge->{msg}}, "merge branch $1" if $2 eq ""; + } + elsif(/^ Merge remote-tracking branch /) { + # ignore + } + elsif(s/^ //) { + push @{$commit->{lines}}, $_ unless /^# /; + } + } + elsif($commit) { + if(s/^ //) { + push @{$commit->{lines}}, $_ unless /^# /; + } + } + } + + # Note: the individual steps below work on the array @$commits and modify + # its content. + + # step 1 + # - if there are paragraphs starting with '@log@' or '@+log@' + # - delete first paragraph (short summary) + # - else + # - keep only first paragraph + # - if there is a paragraph starting with '@-log', delete entire log + # - tag commits that have a '@log@' tag so we can delete untagged commits + # belonging to the same merge commit later + + my $tagged_merges = {}; + + for my $commit (@$commits) { + # skip leading empty lines + for (@{$commit->{lines}}) { + last if !/^\s*$/; + shift @{$commit->{lines}}; + } + my $para_cnt = 0; + my $delete_all = 0; + my $delete_first = 0; + for (@{$commit->{lines}}) { + $para_cnt++ if $_ eq ""; + $para_cnt = 0, $delete_first = 1 if /^\@\+log\@/; + $delete_all = 1 if /^\@\-log\@/; + if(/^\@log\@/) { + $para_cnt = 0; + $commit->{clear} = 1; + $tagged_merges->{$commit->{merge_ref}} = 1 if $commit->{merge_ref} || $log->{was_untagged}; + } + $_ = undef if $para_cnt; + } + shift @{$commit->{lines}} if $delete_first; + $commit->{lines} = [] if $delete_all; + } + + # step 2 + # - clean up tagged commits or commits belonging to tagged merges + + for my $commit (@$commits) { + next unless $commit->{clear} || $tagged_merges->{$commit->{merge_ref}}; + for (@{$commit->{lines}}) { + last if /^\@\+?log\@/; + $_ = undef; + } + } + + # step 3 + # - join lines + + for my $commit (@$commits) { + my $lines; + my $line; + + for (@{$commit->{lines}}) { + next if $_ eq ""; + if( + s/^\s*[+\-][\-\s]*// || + s/^\@\+?log\@// || + $line eq "" + ) { + s/^\s*//; + push @$lines, $line if $line ne ""; + $line = $_; + } + else { + s/^\s*//; + $line .= " " if $line ne ""; + $line .= $_; + } + } + push @$lines, $line if $line ne ""; + + $commit->{formatted} = $lines if $lines; + } + + # step 4 + # - fix small glitches + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + s/(fate|bnc|bsc|boo|jsc)\s*(#[a-z\d\-]+)/\L$1\E$2/ig; + } + } + + # step 5 + # - add merge info at the top or bottom (depending on $opt_merge_msg_before) + + my $merge_logged; + + for my $commit ($opt_merge_msg_before ? reverse(@$commits) : @$commits) { + next unless $commit->{formatted}; + + if($commit->{merge_ref} && !$merge_logged->{$commit->{merge_ref}}) { + $merge_logged->{$commit->{merge_ref}} = 1; + if($commit->{merge_msg}) { + if($opt_merge_msg_before) { + unshift @{$commit->{formatted}}, @{$commit->{merge_msg}}; + } + else { + push @{$commit->{formatted}}, @{$commit->{merge_msg}}; + } + } + } + } + + # step 6 + # - join commit messages with same author (optionally even with different dates) + + my $commit0; + + for my $commit (@$commits) { + next if !$commit->{formatted}; + $commit0 = $commit, next if !$commit0; + + if( + # $commit->{merge_ref} eq $commit0->{merge_ref} && + ( + $opt_join_author && ($commit->{author} eq $commit0->{author}) + && (!$opt_keep_date || $commit->{date} eq $commit0->{date}) + ) + || $opt_format eq 'internal' + ) { + unshift @{$commit0->{formatted}}, @{$commit->{formatted}}; + delete $commit->{formatted}; + } + else { + $commit0 = $commit; + } + } + + # step 7 + # - add version tag at the end of the first log entry + + for my $commit (@$commits) { + next unless $commit->{formatted}; + + if($opt_format eq 'obs') { + push @{$commit->{formatted}}, $log->{tags}[0]{version} if defined $log->{tags}[0]{version}; + } + else { + # push @{$commit->{formatted}}, tag_to_str($log->{tags}[0]); + } + + last; + } + + # step 8 + # - remove identical lines + + for my $commit (@$commits) { + next unless $commit->{formatted}; + my %k; + $commit->{formatted} = [ grep { !$k{$_}++ } @{$commit->{formatted}} ] + } + + # step 9 + # - remove shortened lines (that match the beginning of other lines) + + for my $commit (@$commits) { + next unless $commit->{formatted}; + + # return 1 if some other commit line starts with function arg + my $is_substr = sub { + my $str = $_[0]; + $str =~ s/\s*…$//; # github likes to shorten lines with ' …' + my $str_len = length $str; + for (@{$commit->{formatted}}) { + return 1 if $str_len < length($_) && $str eq substr($_, 0, $str_len); + } + + return 0; + }; + + $commit->{formatted} = [ grep { ! $is_substr->($_) } @{$commit->{formatted}} ] + } + + # step 10 + # - add bugzilla reference to Weblate commits + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + $_ = add_bugzilla_to_weblate $_; + } + } + + # step 11 + # - add line breaks + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + $_ = add_line_breaks $_; + } + } + + # step 12 + # - generate final log message + # + # note: non-(open)suse email addresses are replaced by $opt_default_email + + my $formated_log; + + for my $commit (@$commits) { + next unless $commit->{formatted} && @{$commit->{formatted}}; + + if($opt_format eq 'obs') { + $formated_log .= "-" x $opt_sep_width . "\n"; + $formated_log .= format_date_obs($commit->{date}); + } + else { + $formated_log .= format_date_iso($commit->{date}); + } + if($opt_format eq 'obs') { + my $auth = $commit->{author}; + $auth =~ s/^.*.*$//; + # replace non-suse e-mail addresses with a generic one + if($auth !~ /\@(suse\.(com|cz|de)|opensuse\.org)$/) { + $auth = $opt_default_email; + } + $formated_log .= " - $auth\n\n"; + } + else { + $formated_log .= ":\t" . tag_to_str($log->{tags}[0]) . "\n"; + } + + for (@{$commit->{formatted}}) { + s/^/\t/mg if $opt_format eq 'internal'; + $formated_log .= "$_\n"; + } + + $formated_log .= "\n"; + } + + $log->{formatted} = $formated_log; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# new_text = add_line_breaks(text) +# +# Add line breaks to text. +# - text: some text +# - new_text: same text, reformatted +# +# Lines are formatted to have a maximal length of $opt_width. If this causes +# the last line to be shorter than $opt_width_fuzz, it is appended to the +# previous line. +# +sub add_line_breaks +{ + my @words = split /\s+/, @_[0]; + my $remaining_len = length(join '', @words); + + my $str = shift(@words); + my $len = length $str; + + my $next_len; + my $word_len; + + for (@words) { + $word_len = length; + $remaining_len -= $word_len; + $next_len = $len + $word_len + 1; + if( + $next_len >= $opt_width && + $next_len + $remaining_len + 1 >= $opt_width + $opt_width_fuzz + ) { + $str .= "\n $_"; + $len = $word_len; + } + else { + $str .= " $_"; + $len += $word_len + 1; + } + } + + return "- " . $str; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# new_text = add_bugzilla_to_weblate(text) +# +# Add bugzilla number to an auto-generated Weblate commit. +# - text: some text +# - new_text: same text, "($opt_weblate)" added +# +sub add_bugzilla_to_weblate +{ + my $text = @_[0]; + + if($opt_weblate ne "") { + if($text =~ /Translated using Weblate/ && $text !~ /\($opt_weblate\)/) { + $text .= " ($opt_weblate)"; + } + } + + return $text; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# seconds = raw_date_to_s(git_date) +# +# Convert git raw date to seconds. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - seconds: the seconds part (e.g. "1443184889") +# +sub raw_date_to_s +{ + return (split / /, $_[0])[0]; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# date = format_date_obs(git_date) +# +# Convert git raw date to obs format. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - date: obs format ("Fri Sep 25 12:41:29 UTC 2015") +# +sub format_date_obs +{ + my @d = gmtime(raw_date_to_s($_[0])); + + return + qw(Sun Mon Tue Wed Thu Fri Sat)[$d[6]] . " " . + qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)[$d[4]] . " " . + $d[3] . " " . + sprintf("%02d:%02d:%02d", $d[2], $d[1], $d[0]) . " UTC " . + (1900 + $d[5]); +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# date = format_date_iso(git_date) +# +# Convert git raw date to iso format. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - date: obs format ("2015-09-25") +# +sub format_date_iso +{ + my @d = gmtime(raw_date_to_s($_[0])); + + return sprintf("%04d-%02d-%02d", 1900 + $d[5], $d[4] + 1, $d[3]); +} diff --git a/grub_build b/grub_build new file mode 100755 index 0000000..03a67fa --- /dev/null +++ b/grub_build @@ -0,0 +1,39 @@ +#! /bin/sh + +# script to update gfxboot sources in grub2 and rebuild it +# +# use --bios or --efi option to rebuild only either target +# + +. ./config_vars + + +# - - - lets start... - - - + +user_spec=`stat -c '%u:%g' $HOME` + +if [ ! -d $grub_dir ] ; then + echo "no grub build project prepared" + exit 1 +fi + +( + cd $grub_dir + + if [ `stat -c '%u:%g' .` != "$user_spec" ] ; then + $su chown "$user_spec" -R . + echo adjusting grub build tree ownership + fi +) + +mkdir -p $grub_dir/grub-core/$grub_module +cp -a $grub_files $grub_dir/grub-core/$grub_module + +if [ "$1" != "--efi" ] ; then + $su chroot --userspec "$user_spec" $grub_root/ sh -c "cd $grub_build/build ; make" +fi + +if [ "$1" != "--bios" ] ; then + $su chroot --userspec "$user_spec" $grub_root/ sh -c "cd $grub_build/build-efi ; make" +fi + diff --git a/mk_grub_test b/mk_grub_test new file mode 100755 index 0000000..c45b88c --- /dev/null +++ b/mk_grub_test @@ -0,0 +1,75 @@ +#! /bin/bash + +# script to copy the updated gfxboot module from the grub2 tree and build a +# test cd with them +# + +. ./config_vars + +rm -rf $grub_iso_dir +cp -a $grub_iso_src $grub_iso_dir + +mkdir -p $grub_iso_dir/EFI/BOOT + +test_grub_dir=$grub_iso_dir/boot/x86_64/grub2-efi +mkdir $test_grub_dir + +mods=" + gfxboot gfxterm + video videoinfo vga vbe + biosdisk linux + ext2 btrfs ext2 xfs jfs reiserfs + all_video boot cat chain configfile echo + font gzio halt iso9660 + jpeg minicmd normal part_apple part_msdos part_gpt + password_pbkdf2 png reboot search search_fs_uuid + search_fs_file search_label sleep test video fat loadenv +" + +efimods=" + gfxboot gfxterm + video videoinfo efi_gop + linuxefi + ext2 btrfs ext2 xfs jfs reiserfs + all_video boot cat chain configfile echo + font gzio halt iso9660 + jpeg minicmd normal part_apple part_msdos part_gpt + password_pbkdf2 png reboot search search_fs_uuid + search_fs_file search_label sleep test video fat loadenv +" + +# - - - lets start... - - - + +echo re-building $grub_iso + +( + mods=$(echo $mods) + sw 0 chroot $grub_root/ sh -c "cd b/build ; ./grub-mkimage -d grub-core -O i386-pc -o core.img --prefix=/boot/x86_64/grub2-efi $mods" + cd $grub_dir/build + cat grub-core/cdboot.img core.img >cd.img +) + +cp $grub_dir/build/cd.img $test_grub_dir + +cp files/grub.cfg $test_grub_dir +perl -pi -e 's/(linux|initrd)efi/$1/' $test_grub_dir/grub.cfg + +( + efimods=$(echo $efimods) + sw 0 chroot $grub_root/ sh -c "cd b/build-efi ; ./grub-mkimage -d grub-core -O x86_64-efi -o grub.efi --prefix= $efimods" + cd $grub_dir/build-efi + cp grub.efi $grub_iso_dir/EFI/BOOT/bootx64.efi + mcopy -i $grub_iso_dir/boot/x86_64/efi grub.efi ::/EFI/BOOT/bootx64.efi +) + +cp files/grub.cfg $grub_iso_dir/EFI/BOOT/ +mcopy -i $grub_iso_dir/boot/x86_64/efi files/grub.cfg ::/EFI/BOOT + +cp files/* $test_grub_dir + +for i in $test_grub_dir/*.gs ; do + ./gfxboot-compile -c ${i/.gs/.gc} $i +done + +mksusecd --nano --no-hybrid --no-digest --grub2 -c $grub_iso $grub_iso_dir + diff --git a/mk_reference b/mk_reference new file mode 100755 index 0000000..eda3e33 --- /dev/null +++ b/mk_reference @@ -0,0 +1,247 @@ +#! /usr/bin/perl + +use strict; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub word_sort; +sub process_comment; +sub xref; + +# vocabulary definitions +my $prim = $ARGV[0]; +# C source +my $source = $ARGV[1]; +# doc template +my $doc = $ARGV[2]; +# generated doc +my $dst = $ARGV[3]; + +my $vocab; +my $groups; + +open my $f, $prim or die "$prim: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + my $name = $i[1] ? $i[1] : $i[0]; + $vocab->{$name}{name} = $name; + $vocab->{$name}{str} = $i[0]; +} + +close $f; + +open my $f, $source or die "$source: $!\n"; + +my $comm; +while(<$f>) { + if(m#^// ?(.*?)$#) { + my $c = $1; + push @$comm, $c unless $c =~ /^- - -/; + next; + } + if(/^void gfx_prim_([^\(]+)/ && exists $vocab->{$1}) { + $vocab->{$1}{doc} = $comm; + undef $comm; + next; + } + if(/^\}/) { + undef $comm; + next; + } +} + +close $f; + +process_comment $vocab->{$_} for keys %$vocab; + +my $doc_template; + +open my $f, $doc or die "$doc: $!\n"; +{ + local $/; + $doc_template = <$f>; +} +close $f; + +my $all_docs; + +for (sort { word_sort } keys %$vocab) { + next if @{$vocab->{$_}{doc}} == 0; + my $str = $vocab->{$_}{doc_str}; + + $str = xref $str, $_; + + $all_docs .= $str; + $all_docs .= "\n"; +} + +$doc_template =~ s/PRIMITIVE_WORD_LIST/$all_docs/; + +open my $f, ">", $dst or die "$dst: $!\n"; + +print $f $doc_template; + +close $f; + +my $undoc; + +for (sort { word_sort } keys %$vocab) { + next if @{$vocab->{$_}{doc}} != 0; + push @$undoc, $vocab->{$_}{name}; +} + +print "undocumented words: ", join(", ", @$undoc), "\n" if $undoc; + +# print Dumper $vocab; + + +sub process_comment +{ + my $d = $_[0]; + + if($d->{doc}) { + while(@{$d->{doc}} >= 1) { + if($d->{doc}[-1] eq "") { + pop @{$d->{doc}} + } + else { + last; + } + } + } + + my $vars; + for my $c (@{$d->{doc}}) { + if($c =~ /^\(.*--.*\)/) { + while($c =~ m/([a-z0-9_]+)/g) { + my $v1 = $1; + my $v2 = $v1; + $v2 =~ s/_(\S+)/~$1~/; + $vars->{$v1} = "__${v2}__"; + } + } + } + + my $all_vars = join '|', keys %$vars; + + my $doc; + my $new_para; + my $example; + my $cnt = 0; + my $item_start; + my $notes; + for my $c (@{$d->{doc}}) { + $cnt++; + if($cnt == 1) { + $doc = "* **+$d->{str}+** - $c [[$d->{name}]]\n"; + next; + } + if($example) { + $doc .= "$c\n"; + next; + } + if($c eq "") { + $doc .= "+\n" unless $new_para; + $new_para = 1; + next; + } + if($c =~ /^groups?:\s*(\S+)/i) { + for my $g (split /,/, $1) { + $groups->{$g}{$d->{name}} = 1; + $d->{groups}{$g} = 1; + } + next; + } + if($c =~ /^examples?:/i) { + if($item_start) { + $doc .= "--\n+\n"; + $item_start = 0; + } + $doc .= ".Examples\n```\n"; + $example = 1; + next; + } + $new_para = 0; + my $x = $c; + if($c =~ /^\(.*--.*\)/) { + $x = "** $x"; + $x = "--\n$x" if !$item_start; + $item_start = 1; + } + elsif( + $item_start && + $c ne "" && + (!($c =~ /^($all_vars):/ || ($c =~ /^($all_vars)\b/ && $c =~ /\b($all_vars)\b/)) || $all_vars eq "") + ) { + $x = "XXX--\n$x"; + $item_start = 0; + $notes = 1; + } + else { + $x = "+\n$x" unless $notes; + } + for my $v (keys %$vars) { + $x =~ s/\b$v\b/$vars->{$v}/g; + } + $doc .= "$x\n"; + } + + $doc .= "--\n" if $item_start; + $doc =~ s/\+\nXXX--\n/--\n+\n/; + $doc .= "```\n" if $example; + + if($d->{groups}) { +# $doc .= "+\nSee also: XXX_XREF\n"; + $doc .= "XXX_XREF"; + } + + $doc =~ s/\+\n\+\n/+\n/g; + + $d->{doc_str} = $doc; +} + + +sub xref +{ + my $doc = $_[0]; + my $name = $_[1]; + + my $refs; + + if($vocab->{$name}{groups}) { + for my $g (keys %{$vocab->{$name}{groups}}) { + for my $n (keys %{$groups->{$g}}) { + $refs->{$n} = "xref:$n\[+$vocab->{$n}{str}+\]"; + } + } + delete $refs->{$name}; + + my $r = join ", ", map { $refs->{$_} } sort { word_sort } keys %$refs; + + if($r ne "") { + $doc =~ s/XXX_XREF/+\nSee also: $r\n/; + } + else { + $doc =~ s/XXX_XREF//; + } + } + + return $doc; +} + + +sub word_sort +{ + my $x = $vocab->{$a}{str}; + my $y = $vocab->{$b}{str}; + + my $x = $x eq '{' || $x eq '}' ? " $x" : $x; + my $y = $y eq '{' || $y eq '}' ? " $y" : $y; + + return $x cmp $y; +} diff --git a/mk_vocabulary b/mk_vocabulary new file mode 100755 index 0000000..7cb97ad --- /dev/null +++ b/mk_vocabulary @@ -0,0 +1,127 @@ +#! /usr/bin/perl + +use strict; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub print_list; + +# vocabulary definitions +my $prim = $ARGV[0]; +# type definitions +my $type = $ARGV[1]; +# generated C header file +my $dst = $ARGV[2]; + +my $vocab; +my $types; + +open my $f, $prim or die "$prim: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + push @$vocab, { str => $i[0], name => $i[1] ? $i[1] : $i[0] }; +} + +close $f; + +open my $f, $type or die "$type: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + push @$types, { str => $i[0], name => $i[1] ? $i[1] : $i[0] }; +} + +close $f; + +open my $f, ">", $dst or die "$dst: $!\n"; + +print $f <<"----" +#define GFXBOOT_MAGIC 0x60ad7a42a91251L + +#ifdef WITH_PRIM_NAMES +const char *prim_names[] = { +---- +; + +my $list; +push @$list, "\"$_->{str}\"" for @$vocab; +print_list $f, $list, 8; + +print $f "\n};\n#endif\n\n"; + + +print $f "enum {\n"; + +my $list; +push @$list, "prim_idx_$_->{name}" for @$vocab; +print_list $f, $list, 4; + +print $f "\n};\n\n"; + + +print $f "#ifdef WITH_PRIM_HEADERS\n"; + +my $list; +push @$list, "gfx_prim_$_->{name}" for @$vocab; +print $f "static void $_(void);\n" for @$list; + + +print $f "\nstatic void (*gfx_prim_list[])(void) = {\n"; + +print_list $f, $list, 4; + +print $f "\n};\n#endif\n\n"; + + +print $f "#ifdef WITH_TYPE_NAMES\nconst char *type_name[] = {\n"; + +my $list; +push @$list, "\"$_->{str}\"" for @$types; +print_list $f, $list, 8; + +print $f "\n};\n#endif\n\n"; + + +print $f <<"----" +#define TYPE_EXPECTS_DATA(a) ((a) >= t_comment) + +typedef enum { +---- +; + +my $list; +push @$list, "t_$_->{name}" for @$types; +print_list $f, $list, 4; + +print $f "\n} type_t;\n"; + +close $f; + + +sub print_list +{ + my $f = $_[0]; + my $list = $_[1]; + my $cols = $_[2]; + + my $cnt = 0; + for (@$list) { + print $f "," if $cnt; + if($cnt % $cols) { + print $f " "; + } + else { + print $f "\n" if $cnt; + print $f " "; + } + print $f "$_"; + $cnt++; + } +} + diff --git a/mk_x11_test b/mk_x11_test new file mode 100755 index 0000000..256dfaa --- /dev/null +++ b/mk_x11_test @@ -0,0 +1,12 @@ +#! /bin/bash + +rm -rf x11 +mkdir x11 + +cp files/* x11 +rm x11/*~ + +for i in x11/*.gs ; do + # ./gfxboot-compile -Oc ${i/.gs/.gc} $i + ./gfxboot-compile -O1 -vc ${i/.gs/.gc} -l $i.log $i +done diff --git a/patches/grub-2.04.diff b/patches/grub-2.04.diff new file mode 100644 index 0000000..f034148 --- /dev/null +++ b/patches/grub-2.04.diff @@ -0,0 +1,256 @@ +diff -ru grub-2.04.orig/include/grub/menu_viewer.h grub-2.04/include/grub/menu_viewer.h +--- grub-2.04.orig/include/grub/menu_viewer.h 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/include/grub/menu_viewer.h 2020-03-11 20:15:05.837002361 +0100 +@@ -35,6 +35,7 @@ + void (*clear_timeout) (void *data); + void (*scroll_chosen_entry) (void *data, int diren); + void (*fini) (void *fini); ++ int (*process_key) (int *key); + }; + + void grub_menu_register_viewer (struct grub_menu_viewer *viewer); +Only in grub-2.04/include/grub: menu_viewer.h~ +diff -ru grub-2.04.orig/include/grub/video.h grub-2.04/include/grub/video.h +--- grub-2.04.orig/include/grub/video.h 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/include/grub/video.h 2020-03-11 20:34:46.551694570 +0100 +@@ -331,7 +331,9 @@ + grub_video_mode_type_t mode_type, + grub_video_mode_type_t mode_mask); + +- grub_err_t (*get_info) (struct grub_video_mode_info *mode_info); ++ grub_err_t (*get_info) (struct grub_video_mode_info *mode_info, void **framebuffer); ++ ++ grub_err_t (*get_raw_info) (struct grub_video_mode_info *mode_info, void **framebuffer); + + grub_err_t (*get_info_and_fini) (struct grub_video_mode_info *mode_info, + void **framebuffer); +@@ -437,6 +439,8 @@ + + grub_err_t EXPORT_FUNC (grub_video_get_info) (struct grub_video_mode_info *mode_info); + ++grub_err_t EXPORT_FUNC (grub_video_get_raw_info) (struct grub_video_mode_info *mode_info, void **framebuffer); ++ + /* Framebuffer address may change as a part of normal operation + (e.g. double buffering). That's why you need to stop video subsystem to be + sure that framebuffer address doesn't change. To ensure this abstraction +Only in grub-2.04/include/grub: video.h~ +diff -ru grub-2.04.orig/include/grub/video_fb.h grub-2.04/include/grub/video_fb.h +--- grub-2.04.orig/include/grub/video_fb.h 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/include/grub/video_fb.h 2020-03-11 20:23:10.733793798 +0100 +@@ -42,7 +42,7 @@ + EXPORT_FUNC(grub_video_fb_fini) (void); + + grub_err_t +-EXPORT_FUNC(grub_video_fb_get_info) (struct grub_video_mode_info *mode_info); ++EXPORT_FUNC(grub_video_fb_get_info) (struct grub_video_mode_info *mode_info, void **framebuf); + + grub_err_t + EXPORT_FUNC(grub_video_fb_get_palette) (unsigned int start, unsigned int count, +Only in grub-2.04/include/grub: video_fb.h~ +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/Makefile.core.def grub-2.04/grub-core/Makefile.core.def +--- grub-2.04.orig/grub-core/Makefile.core.def 2020-03-15 17:27:58.083304168 +0100 ++++ grub-2.04/grub-core/Makefile.core.def 2020-04-19 20:15:45.725352760 +0200 +@@ -1576,6 +1576,29 @@ + }; + + module = { ++ name = gfxboot; ++ common = gfxboot/gfxboot.c; ++ common = gfxboot/gfxboot_array.c; ++ common = gfxboot/gfxboot_canvas.c; ++ common = gfxboot/gfxboot_context.c; ++ common = gfxboot/gfxboot_debug.c; ++ common = gfxboot/gfxboot_draw.c; ++ common = gfxboot/gfxboot_font.c; ++ common = gfxboot/gfxboot_grub.c; ++ common = gfxboot/gfxboot_gstate.c; ++ common = gfxboot/gfxboot_hash.c; ++ common = gfxboot/gfxboot_jpeg.c; ++ common = gfxboot/gfxboot_lib.c; ++ common = gfxboot/gfxboot_main.c; ++ common = gfxboot/gfxboot_malloc.c; ++ common = gfxboot/gfxboot_mem.c; ++ common = gfxboot/gfxboot_num.c; ++ common = gfxboot/gfxboot_obj.c; ++ common = gfxboot/gfxboot_olist.c; ++ common = gfxboot/gfxboot_prim.c; ++}; ++ ++module = { + name = hello; + common = hello/hello.c; + }; +Only in grub-2.04/grub-core: Makefile.core.def~ +Only in grub-2.04/grub-core: gfxboot +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/normal/menu.c grub-2.04/grub-core/normal/menu.c +--- grub-2.04.orig/grub-core/normal/menu.c 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/grub-core/normal/menu.c 2020-03-15 17:56:52.779074968 +0100 +@@ -392,6 +392,19 @@ + + static struct grub_menu_viewer *viewers; + ++static int ++menu_process_key (int *key) ++{ ++ struct grub_menu_viewer *cur; ++ int action = 0; ++ ++ for(cur = viewers; cur && key && *key; cur = cur->next) { ++ if(cur->process_key) action = cur->process_key(key); ++ } ++ ++ return action; ++} ++ + static void + menu_set_chosen_entry (int entry) + { +@@ -659,8 +672,11 @@ + int default_entry, current_entry; + int timeout; + enum timeout_style timeout_style; ++ int action; ++ ++ *auto_boot = 0; + +- default_entry = get_entry_number (menu, "default"); ++ default_entry = current_entry = get_entry_number (menu, "default"); + + workaround_snapshot_menu_default_entry (menu, "default", &default_entry); + +@@ -779,6 +795,18 @@ + + c = grub_getkey_noblock (); + ++ action = menu_process_key (&c); ++ ++ if ((action & 0xff)) ++ { ++ *auto_boot = 0; ++ if ((action & 0x01)) menu_fini (); ++ if ((action & 0x02)) *auto_boot = 1; ++ if ((action & 0x04)) grub_cmdline_run (1, 0); ++ if ((action & 0x08)) goto refresh; ++ if ((action & 0x10)) return action >> 8; ++ } ++ + /* Negative values are returned on error. */ + if ((c != GRUB_TERM_NO_KEY) && (c > 0)) + { +Only in grub-2.04/grub-core/normal: menu.c~ +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/efi_gop.c grub-2.04/grub-core/video/efi_gop.c +--- grub-2.04.orig/grub-core/video/efi_gop.c 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/grub-core/video/efi_gop.c 2020-03-11 20:26:21.099060901 +0100 +@@ -588,6 +588,24 @@ + return GRUB_ERR_NONE; + } + ++static grub_err_t ++grub_video_gop_get_raw_info (struct grub_video_mode_info *mode_info, void **framebuf) ++{ ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ if (mode_info) ++ { ++ err = grub_video_gop_fill_real_mode_info (gop->mode->mode, gop->mode->info, mode_info); ++ if (err) ++ grub_dprintf ("video", "GOP: couldn't fill mode info\n"); ++ } ++ ++ if (framebuf) ++ *framebuf = (char *) framebuffer.ptr; ++ ++ return err; ++} ++ + static struct grub_video_adapter grub_video_gop_adapter = + { + .name = "EFI GOP driver", +@@ -599,6 +617,7 @@ + .fini = grub_video_gop_fini, + .setup = grub_video_gop_setup, + .get_info = grub_video_fb_get_info, ++ .get_raw_info = grub_video_gop_get_raw_info, + .get_info_and_fini = grub_video_gop_get_info_and_fini, + .get_edid = grub_video_gop_get_edid, + .set_palette = grub_video_fb_set_palette, +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/fb/video_fb.c grub-2.04/grub-core/video/fb/video_fb.c +--- grub-2.04.orig/grub-core/video/fb/video_fb.c 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/grub-core/video/fb/video_fb.c 2020-03-11 20:25:29.923792134 +0100 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -355,11 +356,22 @@ + } + + grub_err_t +-grub_video_fb_get_info (struct grub_video_mode_info *mode_info) ++grub_video_fb_get_info (struct grub_video_mode_info *mode_info, void **framebuf) + { +- /* Copy mode info from active render target. */ +- grub_memcpy (mode_info, &framebuffer.render_target->mode_info, +- sizeof (struct grub_video_mode_info)); ++ if (mode_info) ++ { ++ /* Copy mode info from active render target. */ ++ grub_memcpy (mode_info, &framebuffer.render_target->mode_info, ++ sizeof (struct grub_video_mode_info)); ++ } ++ ++ if (framebuf) ++ { ++ *framebuf = (void *) framebuffer.pages[framebuffer.displayed_page]; ++ if(!*framebuf && framebuffer.render_target) { ++ *framebuf = (void *) framebuffer.render_target->data; ++ } ++ } + + return GRUB_ERR_NONE; + } +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/video.c grub-2.04/grub-core/video/video.c +--- grub-2.04.orig/grub-core/video/video.c 2019-05-20 13:00:01.000000000 +0200 ++++ grub-2.04/grub-core/video/video.c 2020-03-11 20:24:05.221003731 +0100 +@@ -60,7 +60,28 @@ + return grub_errno; + } + +- return grub_video_adapter_active->get_info (mode_info); ++ return grub_video_adapter_active->get_info (mode_info, NULL); ++} ++ ++/* Get (real) information about active video mode and framebuffer pointer. */ ++grub_err_t ++grub_video_get_raw_info (struct grub_video_mode_info *mode_info, void **framebuffer) ++{ ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ if (! grub_video_adapter_active) ++ return grub_error (GRUB_ERR_BAD_DEVICE, "no video mode activated"); ++ ++ if (grub_video_adapter_active->get_raw_info) ++ { ++ err = grub_video_adapter_active->get_raw_info (mode_info, framebuffer); ++ } ++ else ++ { ++ err = grub_video_adapter_active->get_info (mode_info, framebuffer); ++ } ++ ++ return err; + } + + grub_video_driver_id_t +@@ -720,7 +741,7 @@ + continue; + } + +- err = p->get_info (&mode_info); ++ err = p->get_info (&mode_info, NULL); + if (err != GRUB_ERR_NONE) + { + p->fini (); diff --git a/patches/grub_diff b/patches/grub_diff new file mode 100755 index 0000000..9c8d667 --- /dev/null +++ b/patches/grub_diff @@ -0,0 +1,6 @@ +#! /bin/bash + +cd ~/g/usr/src/packages/BUILD + +diff -ru grub-2.04{.orig,}/include >/tmp/dif +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04{.orig,}/grub-core >>/tmp/dif diff --git a/run_tests b/run_tests new file mode 100755 index 0000000..6ac2cae --- /dev/null +++ b/run_tests @@ -0,0 +1,201 @@ +#! /usr/bin/perl + +use strict; + +use Getopt::Long; + +sub prepare_test; +sub run_test; +sub verify_test; +sub table_head; + +my $testdir = "tests"; + +# store reference output, don't do checks +my $opt_create_reference; +my $opt_test_pattern = "*"; + +GetOptions( + 'create-reference|r' => \$opt_create_reference, + 'test|t=s' => \$opt_test_pattern, +); + +die "error: no gfxboot-compile\n" unless -x "./gfxboot-compile"; +die "error: no gfxboot-x11\n" unless -x "./gfxboot-x11"; + +my $tests = [ qw ( code mem trace basic code1 opt1 code2 opt2 gc screen ) ]; + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +my $count = 0; +my $failed = 0; +my $ok = 0; + +table_head if !$opt_create_reference; + +for my $test (<$testdir/$opt_test_pattern>) { + next unless -d $test; + $count++; + prepare_test $test; + run_test $test; + prepare_test $test, 1; + run_test $test, 1; + prepare_test $test, 2; + run_test $test, 2; + $failed += verify_test $test if !$opt_create_reference; +} + +if($opt_create_reference) { + print "$count test results created\n"; +} +else { + $ok = $count - $failed; + my $s = sprintf "%4d tests ok", $ok; + $s .= sprintf ", %3d failed", $failed if $failed; + table_head $s; +} + +exit $failed ? 1 : 0; + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub prepare_test +{ + my $test = $_[0]; + my $ref = $opt_create_reference ? ".ref" : ""; + my $opt = $_[1] ? "-O$_[1]" : ""; + + system "./gfxboot-compile $opt -v -c $test/main.gc -l $test/code$_[1].log$ref $test/main.gs"; + + if($ref && $opt) { +# unlink "$test/code$_[1].log$ref"; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub run_test +{ + my $test = $_[0]; + my $opt = $_[1] ? "_opt$_[1]" : ""; + my $opt_log = "opt$_[1].log"; + my $ref = $opt_create_reference ? ".ref" : ""; + + system "./gfxboot-x11 --no-x11 --file tests/test_script $test >$test/test$opt.log"; + + if(open my $f, "$test/test$opt.log") { + local $/; + $_ = <$f>; + close $f; + + if(/\n(# --- trace ---\n.*\n)# --- trace_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+trace_end[^\n]+$//s; + if(!$opt) { + if(open my $f, ">$test/trace.log$ref") { + print $f $s; + close $f; + } + } + my $opt_log_name = "$test/opt.log.ref"; + if($opt) { + $opt_log_name = "$test/$opt_log"; + } + if(open my $f, ">", $opt_log_name) { + $s =~ s/, (ofs|current) 0x[0-9a-f]+\b//g; + $s =~ s/, ip 0x[0-9a-f]+ \(0x[0-9a-f]+\)//g; + $s =~ s/, size \d+\b//g; + $s =~ s/\nIP: [^\n]+//g; + $s =~ s/(\nerror [^\n]+):[^\n]+/$1/g; + print $f $s; + close $f; + } + if(open my $f, ">", "$test/basic.log$ref") { + $s =~ s/#\d+(\.\d+\.\d+\.)/#xxxx$1/g; + print $f $s; + close $f; + } + if($opt) { + link "$test/opt.log.ref", "$test/$opt_log.ref"; + } + } + + if(!$opt) { + if(/\n(# --- mem ---\n.*\n)# --- mem_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+mem_end[^\n]+$//s; + if(open my $f, ">$test/mem.log$ref") { + print $f $s; + close $f; + } + } + + if(/\n(# --- gc ---\n.*\n)# --- gc_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+gc_end[^\n]+$//s; + if(open my $f, ">$test/gc.log$ref") { + print $f $s; + close $f; + } + } + + if(/\n(# --- screen ---\n.*\n)# --- screen_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+screen_end[^\n]+$//s; + if(open my $f, ">$test/screen.log$ref") { + print $f $s; + close $f; + } + } + } + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub verify_test +{ + my $test = $_[0]; + my $all_err = 0; + + my $name = $test; + $name =~ s#^.*/##; + + printf "%-26s|", $name; + + my $msg; + + for my $v (@$tests) { + my $res; + my $ref; + if(open my $f, "$test/$v.log") { local $/; $res = <$f>; close $f; } + if(open my $f, "$test/$v.log.ref") { local $/; $ref = <$f>; close $f; } + + my $err; + if($v eq "gc" ) { + # gc should have cleaned up everything but for 2 objects: + # - 1. object list + # - 2. gc's own data + $err = $res !~ /olist +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <18 (0x12)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #0.0.nil + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4660 (0x1234)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #0.0.nil + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <4660 (0x1234)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #0.0.nil + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <305419896 (0x12345678)> + [1] #xxxx.1.1.num.int <1193046 (0x123456)> + [2] #xxxx.1.1.num.int <4660 (0x1234)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #0.0.nil + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [1] #xxxx.1.1.num.int <305419896 (0x12345678)> + [2] #xxxx.1.1.num.int <1193046 (0x123456)> + [3] #xxxx.1.1.num.int <4660 (0x1234)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #0.0.nil + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [1] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [2] #xxxx.1.1.num.int <305419896 (0x12345678)> + [3] #xxxx.1.1.num.int <1193046 (0x123456)> + [4] #xxxx.1.1.num.int <4660 (0x1234)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #0.0.nil + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [1] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [2] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [3] #xxxx.1.1.num.int <305419896 (0x12345678)> + [4] #xxxx.1.1.num.int <1193046 (0x123456)> + [5] #xxxx.1.1.num.int <4660 (0x1234)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #0.0.nil + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [1] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [2] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [3] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [4] #xxxx.1.1.num.int <305419896 (0x12345678)> + [5] #xxxx.1.1.num.int <1193046 (0x123456)> + [6] #xxxx.1.1.num.int <4660 (0x1234)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #0.0.nil + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [1] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [2] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [3] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [4] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [5] #xxxx.1.1.num.int <305419896 (0x12345678)> + [6] #xxxx.1.1.num.int <1193046 (0x123456)> + [7] #xxxx.1.1.num.int <4660 (0x1234)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #0.0.nil + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [1] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [2] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [3] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [4] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [5] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <1193046 (0x123456)> + [8] #xxxx.1.1.num.int <4660 (0x1234)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #0.0.nil + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [1] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [2] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [3] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [4] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [5] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [6] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <1193046 (0x123456)> + [9] #xxxx.1.1.num.int <4660 (0x1234)> + [10] #xxxx.1.1.num.int <18 (0x12)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #0.0.nil + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <127 (0x7f)> + [1] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [2] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [3] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [4] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [5] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [6] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [7] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <1193046 (0x123456)> + [10] #xxxx.1.1.num.int <4660 (0x1234)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #0.0.nil + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <128 (0x80)> + [1] #xxxx.1.1.num.int <127 (0x7f)> + [2] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [3] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [4] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [5] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [6] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [7] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [8] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <1193046 (0x123456)> + [11] #xxxx.1.1.num.int <4660 (0x1234)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #0.0.nil + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <128 (0x80)> + [2] #xxxx.1.1.num.int <127 (0x7f)> + [3] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [4] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [5] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [6] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [7] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [8] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [9] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <1193046 (0x123456)> + [12] #xxxx.1.1.num.int <4660 (0x1234)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #0.0.nil + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <128 (0x80)> + [3] #xxxx.1.1.num.int <127 (0x7f)> + [4] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [5] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [6] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [7] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [8] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [9] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <1193046 (0x123456)> + [13] #xxxx.1.1.num.int <4660 (0x1234)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #0.0.nil + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <128 (0x80)> + [4] #xxxx.1.1.num.int <127 (0x7f)> + [5] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [6] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [7] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [8] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [9] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [10] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [11] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <1193046 (0x123456)> + [14] #xxxx.1.1.num.int <4660 (0x1234)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #0.0.nil + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <128 (0x80)> + [5] #xxxx.1.1.num.int <127 (0x7f)> + [6] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [7] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [8] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [9] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [10] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [12] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <1193046 (0x123456)> + [15] #xxxx.1.1.num.int <4660 (0x1234)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #0.0.nil + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <128 (0x80)> + [6] #xxxx.1.1.num.int <127 (0x7f)> + [7] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [8] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [9] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [10] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [11] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [12] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [13] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <1193046 (0x123456)> + [16] #xxxx.1.1.num.int <4660 (0x1234)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #0.0.nil + [20] #xxxx.1.1.num.bool <0 (0x0)> + [21] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <128 (0x80)> + [7] #xxxx.1.1.num.int <127 (0x7f)> + [8] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [9] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [10] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [11] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [13] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [14] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [15] #xxxx.1.1.num.int <305419896 (0x12345678)> + [16] #xxxx.1.1.num.int <1193046 (0x123456)> + [17] #xxxx.1.1.num.int <4660 (0x1234)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #0.0.nil + [21] #xxxx.1.1.num.bool <0 (0x0)> + [22] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <128 (0x80)> + [8] #xxxx.1.1.num.int <127 (0x7f)> + [9] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [10] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [11] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [12] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [13] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [14] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [15] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [16] #xxxx.1.1.num.int <305419896 (0x12345678)> + [17] #xxxx.1.1.num.int <1193046 (0x123456)> + [18] #xxxx.1.1.num.int <4660 (0x1234)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #0.0.nil + [22] #xxxx.1.1.num.bool <0 (0x0)> + [23] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <128 (0x80)> + [9] #xxxx.1.1.num.int <127 (0x7f)> + [10] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [11] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [12] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [14] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [15] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [16] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [17] #xxxx.1.1.num.int <305419896 (0x12345678)> + [18] #xxxx.1.1.num.int <1193046 (0x123456)> + [19] #xxxx.1.1.num.int <4660 (0x1234)> + [20] #xxxx.1.1.num.int <18 (0x12)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #0.0.nil + [23] #xxxx.1.1.num.bool <0 (0x0)> + [24] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <128 (0x80)> + [10] #xxxx.1.1.num.int <127 (0x7f)> + [11] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [12] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [13] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [14] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [15] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [16] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [17] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <1193046 (0x123456)> + [20] #xxxx.1.1.num.int <4660 (0x1234)> + [21] #xxxx.1.1.num.int <18 (0x12)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #0.0.nil + [24] #xxxx.1.1.num.bool <0 (0x0)> + [25] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <128 (0x80)> + [11] #xxxx.1.1.num.int <127 (0x7f)> + [12] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [13] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [14] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [15] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [16] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [17] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [18] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [19] #xxxx.1.1.num.int <305419896 (0x12345678)> + [20] #xxxx.1.1.num.int <1193046 (0x123456)> + [21] #xxxx.1.1.num.int <4660 (0x1234)> + [22] #xxxx.1.1.num.int <18 (0x12)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #0.0.nil + [25] #xxxx.1.1.num.bool <0 (0x0)> + [26] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <39 (0x27)> + [1] #xxxx.1.1.num.int <9 (0x9)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <128 (0x80)> + [12] #xxxx.1.1.num.int <127 (0x7f)> + [13] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [14] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [15] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [16] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [17] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [18] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [19] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [20] #xxxx.1.1.num.int <305419896 (0x12345678)> + [21] #xxxx.1.1.num.int <1193046 (0x123456)> + [22] #xxxx.1.1.num.int <4660 (0x1234)> + [23] #xxxx.1.1.num.int <18 (0x12)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #0.0.nil + [26] #xxxx.1.1.num.bool <0 (0x0)> + [27] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <92 (0x5c)> + [1] #xxxx.1.1.num.int <39 (0x27)> + [2] #xxxx.1.1.num.int <9 (0x9)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <128 (0x80)> + [13] #xxxx.1.1.num.int <127 (0x7f)> + [14] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [16] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [17] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [18] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [19] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [20] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [21] #xxxx.1.1.num.int <305419896 (0x12345678)> + [22] #xxxx.1.1.num.int <1193046 (0x123456)> + [23] #xxxx.1.1.num.int <4660 (0x1234)> + [24] #xxxx.1.1.num.int <18 (0x12)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #0.0.nil + [27] #xxxx.1.1.num.bool <0 (0x0)> + [28] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <97 (0x61)> + [1] #xxxx.1.1.num.int <92 (0x5c)> + [2] #xxxx.1.1.num.int <39 (0x27)> + [3] #xxxx.1.1.num.int <9 (0x9)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <128 (0x80)> + [14] #xxxx.1.1.num.int <127 (0x7f)> + [15] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [16] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [17] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [18] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [19] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [20] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [21] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [22] #xxxx.1.1.num.int <305419896 (0x12345678)> + [23] #xxxx.1.1.num.int <1193046 (0x123456)> + [24] #xxxx.1.1.num.int <4660 (0x1234)> + [25] #xxxx.1.1.num.int <18 (0x12)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #0.0.nil + [28] #xxxx.1.1.num.bool <0 (0x0)> + [29] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8364 (0x20ac)> + [1] #xxxx.1.1.num.int <97 (0x61)> + [2] #xxxx.1.1.num.int <92 (0x5c)> + [3] #xxxx.1.1.num.int <39 (0x27)> + [4] #xxxx.1.1.num.int <9 (0x9)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <128 (0x80)> + [15] #xxxx.1.1.num.int <127 (0x7f)> + [16] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [17] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [18] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [19] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [20] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [21] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [22] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [23] #xxxx.1.1.num.int <305419896 (0x12345678)> + [24] #xxxx.1.1.num.int <1193046 (0x123456)> + [25] #xxxx.1.1.num.int <4660 (0x1234)> + [26] #xxxx.1.1.num.int <18 (0x12)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #0.0.nil + [29] #xxxx.1.1.num.bool <0 (0x0)> + [30] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8364 (0x20ac)> + [1] #xxxx.1.1.num.int <8364 (0x20ac)> + [2] #xxxx.1.1.num.int <97 (0x61)> + [3] #xxxx.1.1.num.int <92 (0x5c)> + [4] #xxxx.1.1.num.int <39 (0x27)> + [5] #xxxx.1.1.num.int <9 (0x9)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <256 (0x100)> + [15] #xxxx.1.1.num.int <128 (0x80)> + [16] #xxxx.1.1.num.int <127 (0x7f)> + [17] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [18] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [19] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [20] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [21] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [22] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [23] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [24] #xxxx.1.1.num.int <305419896 (0x12345678)> + [25] #xxxx.1.1.num.int <1193046 (0x123456)> + [26] #xxxx.1.1.num.int <4660 (0x1234)> + [27] #xxxx.1.1.num.int <18 (0x12)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #0.0.nil + [30] #xxxx.1.1.num.bool <0 (0x0)> + [31] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <78934 (0x13456)> + [1] #xxxx.1.1.num.int <8364 (0x20ac)> + [2] #xxxx.1.1.num.int <8364 (0x20ac)> + [3] #xxxx.1.1.num.int <97 (0x61)> + [4] #xxxx.1.1.num.int <92 (0x5c)> + [5] #xxxx.1.1.num.int <39 (0x27)> + [6] #xxxx.1.1.num.int <9 (0x9)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <256 (0x100)> + [16] #xxxx.1.1.num.int <128 (0x80)> + [17] #xxxx.1.1.num.int <127 (0x7f)> + [18] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [19] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [20] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [21] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [22] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [23] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [24] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [25] #xxxx.1.1.num.int <305419896 (0x12345678)> + [26] #xxxx.1.1.num.int <1193046 (0x123456)> + [27] #xxxx.1.1.num.int <4660 (0x1234)> + [28] #xxxx.1.1.num.int <18 (0x12)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #0.0.nil + [31] #xxxx.1.1.num.bool <0 (0x0)> + [32] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <305419896 (0x12345678)> + [1] #xxxx.1.1.num.int <78934 (0x13456)> + [2] #xxxx.1.1.num.int <8364 (0x20ac)> + [3] #xxxx.1.1.num.int <8364 (0x20ac)> + [4] #xxxx.1.1.num.int <97 (0x61)> + [5] #xxxx.1.1.num.int <92 (0x5c)> + [6] #xxxx.1.1.num.int <39 (0x27)> + [7] #xxxx.1.1.num.int <9 (0x9)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <256 (0x100)> + [17] #xxxx.1.1.num.int <128 (0x80)> + [18] #xxxx.1.1.num.int <127 (0x7f)> + [19] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [20] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [21] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [22] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [23] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [24] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [25] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [26] #xxxx.1.1.num.int <305419896 (0x12345678)> + [27] #xxxx.1.1.num.int <1193046 (0x123456)> + [28] #xxxx.1.1.num.int <4660 (0x1234)> + [29] #xxxx.1.1.num.int <18 (0x12)> + [30] #xxxx.1.1.num.int <0 (0x0)> + [31] #0.0.nil + [32] #xxxx.1.1.num.bool <0 (0x0)> + [33] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "€"> + [1] #xxxx.1.1.num.int <305419896 (0x12345678)> + [2] #xxxx.1.1.num.int <78934 (0x13456)> + [3] #xxxx.1.1.num.int <8364 (0x20ac)> + [4] #xxxx.1.1.num.int <8364 (0x20ac)> + [5] #xxxx.1.1.num.int <97 (0x61)> + [6] #xxxx.1.1.num.int <92 (0x5c)> + [7] #xxxx.1.1.num.int <39 (0x27)> + [8] #xxxx.1.1.num.int <9 (0x9)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <256 (0x100)> + [18] #xxxx.1.1.num.int <128 (0x80)> + [19] #xxxx.1.1.num.int <127 (0x7f)> + [20] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [21] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [22] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [23] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [24] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [25] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [26] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [27] #xxxx.1.1.num.int <305419896 (0x12345678)> + [28] #xxxx.1.1.num.int <1193046 (0x123456)> + [29] #xxxx.1.1.num.int <4660 (0x1234)> + [30] #xxxx.1.1.num.int <18 (0x12)> + [31] #xxxx.1.1.num.int <0 (0x0)> + [32] #0.0.nil + [33] #xxxx.1.1.num.bool <0 (0x0)> + [34] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€ XX X"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€"> + [2] #xxxx.1.1.num.int <305419896 (0x12345678)> + [3] #xxxx.1.1.num.int <78934 (0x13456)> + [4] #xxxx.1.1.num.int <8364 (0x20ac)> + [5] #xxxx.1.1.num.int <8364 (0x20ac)> + [6] #xxxx.1.1.num.int <97 (0x61)> + [7] #xxxx.1.1.num.int <92 (0x5c)> + [8] #xxxx.1.1.num.int <39 (0x27)> + [9] #xxxx.1.1.num.int <9 (0x9)> + [10] #xxxx.1.1.num.int <10 (0xa)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <256 (0x100)> + [19] #xxxx.1.1.num.int <128 (0x80)> + [20] #xxxx.1.1.num.int <127 (0x7f)> + [21] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [22] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [23] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [24] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [25] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [26] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [27] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [28] #xxxx.1.1.num.int <305419896 (0x12345678)> + [29] #xxxx.1.1.num.int <1193046 (0x123456)> + [30] #xxxx.1.1.num.int <4660 (0x1234)> + [31] #xxxx.1.1.num.int <18 (0x12)> + [32] #xxxx.1.1.num.int <0 (0x0)> + [33] #0.0.nil + [34] #xxxx.1.1.num.bool <0 (0x0)> + [35] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "€ XX X"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "€"> + [3] #xxxx.1.1.num.int <305419896 (0x12345678)> + [4] #xxxx.1.1.num.int <78934 (0x13456)> + [5] #xxxx.1.1.num.int <8364 (0x20ac)> + [6] #xxxx.1.1.num.int <8364 (0x20ac)> + [7] #xxxx.1.1.num.int <97 (0x61)> + [8] #xxxx.1.1.num.int <92 (0x5c)> + [9] #xxxx.1.1.num.int <39 (0x27)> + [10] #xxxx.1.1.num.int <9 (0x9)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <256 (0x100)> + [20] #xxxx.1.1.num.int <128 (0x80)> + [21] #xxxx.1.1.num.int <127 (0x7f)> + [22] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [23] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [24] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [25] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [26] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [27] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [28] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [29] #xxxx.1.1.num.int <305419896 (0x12345678)> + [30] #xxxx.1.1.num.int <1193046 (0x123456)> + [31] #xxxx.1.1.num.int <4660 (0x1234)> + [32] #xxxx.1.1.num.int <18 (0x12)> + [33] #xxxx.1.1.num.int <0 (0x0)> + [34] #0.0.nil + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "€ XX X"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "€"> + [4] #xxxx.1.1.num.int <305419896 (0x12345678)> + [5] #xxxx.1.1.num.int <78934 (0x13456)> + [6] #xxxx.1.1.num.int <8364 (0x20ac)> + [7] #xxxx.1.1.num.int <8364 (0x20ac)> + [8] #xxxx.1.1.num.int <97 (0x61)> + [9] #xxxx.1.1.num.int <92 (0x5c)> + [10] #xxxx.1.1.num.int <39 (0x27)> + [11] #xxxx.1.1.num.int <9 (0x9)> + [12] #xxxx.1.1.num.int <10 (0xa)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <256 (0x100)> + [21] #xxxx.1.1.num.int <128 (0x80)> + [22] #xxxx.1.1.num.int <127 (0x7f)> + [23] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [24] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [25] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [26] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [27] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [28] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [29] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [30] #xxxx.1.1.num.int <305419896 (0x12345678)> + [31] #xxxx.1.1.num.int <1193046 (0x123456)> + [32] #xxxx.1.1.num.int <4660 (0x1234)> + [33] #xxxx.1.1.num.int <18 (0x12)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #0.0.nil + [36] #xxxx.1.1.num.bool <0 (0x0)> + [37] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [5] #xxxx.1.1.num.int <305419896 (0x12345678)> + [6] #xxxx.1.1.num.int <78934 (0x13456)> + [7] #xxxx.1.1.num.int <8364 (0x20ac)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <97 (0x61)> + [10] #xxxx.1.1.num.int <92 (0x5c)> + [11] #xxxx.1.1.num.int <39 (0x27)> + [12] #xxxx.1.1.num.int <9 (0x9)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <256 (0x100)> + [22] #xxxx.1.1.num.int <128 (0x80)> + [23] #xxxx.1.1.num.int <127 (0x7f)> + [24] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [25] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [26] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [27] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [28] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [29] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [30] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [31] #xxxx.1.1.num.int <305419896 (0x12345678)> + [32] #xxxx.1.1.num.int <1193046 (0x123456)> + [33] #xxxx.1.1.num.int <4660 (0x1234)> + [34] #xxxx.1.1.num.int <18 (0x12)> + [35] #xxxx.1.1.num.int <0 (0x0)> + [36] #0.0.nil + [37] #xxxx.1.1.num.bool <0 (0x0)> + [38] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <78934 (0x13456)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <97 (0x61)> + [11] #xxxx.1.1.num.int <92 (0x5c)> + [12] #xxxx.1.1.num.int <39 (0x27)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [27] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [32] #xxxx.1.1.num.int <305419896 (0x12345678)> + [33] #xxxx.1.1.num.int <1193046 (0x123456)> + [34] #xxxx.1.1.num.int <4660 (0x1234)> + [35] #xxxx.1.1.num.int <18 (0x12)> + [36] #xxxx.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #xxxx.1.1.num.bool <0 (0x0)> + [39] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <78934 (0x13456)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <97 (0x61)> + [11] #xxxx.1.1.num.int <92 (0x5c)> + [12] #xxxx.1.1.num.int <39 (0x27)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [27] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [32] #xxxx.1.1.num.int <305419896 (0x12345678)> + [33] #xxxx.1.1.num.int <1193046 (0x123456)> + [34] #xxxx.1.1.num.int <4660 (0x1234)> + [35] #xxxx.1.1.num.int <18 (0x12)> + [36] #xxxx.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #xxxx.1.1.num.bool <0 (0x0)> + [39] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <78934 (0x13456)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <97 (0x61)> + [12] #xxxx.1.1.num.int <92 (0x5c)> + [13] #xxxx.1.1.num.int <39 (0x27)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <10 (0xa)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [28] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [33] #xxxx.1.1.num.int <305419896 (0x12345678)> + [34] #xxxx.1.1.num.int <1193046 (0x123456)> + [35] #xxxx.1.1.num.int <4660 (0x1234)> + [36] #xxxx.1.1.num.int <18 (0x12)> + [37] #xxxx.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #xxxx.1.1.num.bool <0 (0x0)> + [40] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <78934 (0x13456)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <97 (0x61)> + [12] #xxxx.1.1.num.int <92 (0x5c)> + [13] #xxxx.1.1.num.int <39 (0x27)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <10 (0xa)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [28] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [33] #xxxx.1.1.num.int <305419896 (0x12345678)> + [34] #xxxx.1.1.num.int <1193046 (0x123456)> + [35] #xxxx.1.1.num.int <4660 (0x1234)> + [36] #xxxx.1.1.num.int <18 (0x12)> + [37] #xxxx.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #xxxx.1.1.num.bool <0 (0x0)> + [40] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.3.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.3.num.prim <2 (0x2)> + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.3.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a10"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a10"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a20"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a10"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a20"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a10"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "c10"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "c10"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "c20"> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "c10"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "b"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.array + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [11] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€ XX X"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€"> + [15] #xxxx.1.1.num.int <305419896 (0x12345678)> + [16] #xxxx.1.1.num.int <78934 (0x13456)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <8364 (0x20ac)> + [19] #xxxx.1.1.num.int <97 (0x61)> + [20] #xxxx.1.1.num.int <92 (0x5c)> + [21] #xxxx.1.1.num.int <39 (0x27)> + [22] #xxxx.1.1.num.int <9 (0x9)> + [23] #xxxx.1.1.num.int <10 (0xa)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [28] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [29] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [30] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #xxxx.1.1.num.int <256 (0x100)> + [32] #xxxx.1.1.num.int <128 (0x80)> + [33] #xxxx.1.1.num.int <127 (0x7f)> + [34] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [35] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [36] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [37] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [38] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [39] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [40] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [41] #xxxx.1.1.num.int <305419896 (0x12345678)> + [42] #xxxx.1.1.num.int <1193046 (0x123456)> + [43] #xxxx.1.1.num.int <4660 (0x1234)> + [44] #xxxx.1.1.num.int <18 (0x12)> + [45] #xxxx.1.1.num.int <0 (0x0)> + [46] #0.0.nil + [47] #xxxx.1.1.num.bool <0 (0x0)> + [48] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "b"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.array + [9] #xxxx.1.1.array + [10] #xxxx.1.1.array + [11] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [12] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€ XX X"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€"> + [16] #xxxx.1.1.num.int <305419896 (0x12345678)> + [17] #xxxx.1.1.num.int <78934 (0x13456)> + [18] #xxxx.1.1.num.int <8364 (0x20ac)> + [19] #xxxx.1.1.num.int <8364 (0x20ac)> + [20] #xxxx.1.1.num.int <97 (0x61)> + [21] #xxxx.1.1.num.int <92 (0x5c)> + [22] #xxxx.1.1.num.int <39 (0x27)> + [23] #xxxx.1.1.num.int <9 (0x9)> + [24] #xxxx.1.1.num.int <10 (0xa)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [29] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [30] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [31] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #xxxx.1.1.num.int <256 (0x100)> + [33] #xxxx.1.1.num.int <128 (0x80)> + [34] #xxxx.1.1.num.int <127 (0x7f)> + [35] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [36] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [37] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [38] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [39] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [40] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [41] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [42] #xxxx.1.1.num.int <305419896 (0x12345678)> + [43] #xxxx.1.1.num.int <1193046 (0x123456)> + [44] #xxxx.1.1.num.int <4660 (0x1234)> + [45] #xxxx.1.1.num.int <18 (0x12)> + [46] #xxxx.1.1.num.int <0 (0x0)> + [47] #0.0.nil + [48] #xxxx.1.1.num.bool <0 (0x0)> + [49] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "c"> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "b"> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.array + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€ XX X"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€"> + [17] #xxxx.1.1.num.int <305419896 (0x12345678)> + [18] #xxxx.1.1.num.int <78934 (0x13456)> + [19] #xxxx.1.1.num.int <8364 (0x20ac)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <97 (0x61)> + [22] #xxxx.1.1.num.int <92 (0x5c)> + [23] #xxxx.1.1.num.int <39 (0x27)> + [24] #xxxx.1.1.num.int <9 (0x9)> + [25] #xxxx.1.1.num.int <10 (0xa)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [30] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [31] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [32] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [33] #xxxx.1.1.num.int <256 (0x100)> + [34] #xxxx.1.1.num.int <128 (0x80)> + [35] #xxxx.1.1.num.int <127 (0x7f)> + [36] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [37] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [38] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [39] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [40] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [41] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [42] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [43] #xxxx.1.1.num.int <305419896 (0x12345678)> + [44] #xxxx.1.1.num.int <1193046 (0x123456)> + [45] #xxxx.1.1.num.int <4660 (0x1234)> + [46] #xxxx.1.1.num.int <18 (0x12)> + [47] #xxxx.1.1.num.int <0 (0x0)> + [48] #0.0.nil + [49] #xxxx.1.1.num.bool <0 (0x0)> + [50] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "c"> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "b"> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [6] #xxxx.1.3.num.prim <4 (0x4)> + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€ XX X"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€"> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <78934 (0x13456)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <97 (0x61)> + [23] #xxxx.1.1.num.int <92 (0x5c)> + [24] #xxxx.1.1.num.int <39 (0x27)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <10 (0xa)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #xxxx.1.1.num.int <256 (0x100)> + [35] #xxxx.1.1.num.int <128 (0x80)> + [36] #xxxx.1.1.num.int <127 (0x7f)> + [37] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [39] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [44] #xxxx.1.1.num.int <305419896 (0x12345678)> + [45] #xxxx.1.1.num.int <1193046 (0x123456)> + [46] #xxxx.1.1.num.int <4660 (0x1234)> + [47] #xxxx.1.1.num.int <18 (0x12)> + [48] #xxxx.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #xxxx.1.1.num.bool <0 (0x0)> + [51] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "d"> + [1] #xxxx.1.3.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [7] #xxxx.1.3.num.prim <4 (0x4)> + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.hash + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.array + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [15] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [19] #xxxx.1.1.num.int <305419896 (0x12345678)> + [20] #xxxx.1.1.num.int <78934 (0x13456)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <8364 (0x20ac)> + [23] #xxxx.1.1.num.int <97 (0x61)> + [24] #xxxx.1.1.num.int <92 (0x5c)> + [25] #xxxx.1.1.num.int <39 (0x27)> + [26] #xxxx.1.1.num.int <9 (0x9)> + [27] #xxxx.1.1.num.int <10 (0xa)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [30] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [32] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [33] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [34] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [35] #xxxx.1.1.num.int <256 (0x100)> + [36] #xxxx.1.1.num.int <128 (0x80)> + [37] #xxxx.1.1.num.int <127 (0x7f)> + [38] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [39] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [40] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [41] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [42] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [43] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [44] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [45] #xxxx.1.1.num.int <305419896 (0x12345678)> + [46] #xxxx.1.1.num.int <1193046 (0x123456)> + [47] #xxxx.1.1.num.int <4660 (0x1234)> + [48] #xxxx.1.1.num.int <18 (0x12)> + [49] #xxxx.1.1.num.int <0 (0x0)> + [50] #0.0.nil + [51] #xxxx.1.1.num.bool <0 (0x0)> + [52] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "d"> + [2] #xxxx.1.3.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [8] #xxxx.1.3.num.prim <4 (0x4)> + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.hash + [11] #xxxx.1.1.hash + [12] #xxxx.1.1.array + [13] #xxxx.1.1.array + [14] #xxxx.1.1.array + [15] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [16] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [20] #xxxx.1.1.num.int <305419896 (0x12345678)> + [21] #xxxx.1.1.num.int <78934 (0x13456)> + [22] #xxxx.1.1.num.int <8364 (0x20ac)> + [23] #xxxx.1.1.num.int <8364 (0x20ac)> + [24] #xxxx.1.1.num.int <97 (0x61)> + [25] #xxxx.1.1.num.int <92 (0x5c)> + [26] #xxxx.1.1.num.int <39 (0x27)> + [27] #xxxx.1.1.num.int <9 (0x9)> + [28] #xxxx.1.1.num.int <10 (0xa)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [31] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [33] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [34] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [35] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [36] #xxxx.1.1.num.int <256 (0x100)> + [37] #xxxx.1.1.num.int <128 (0x80)> + [38] #xxxx.1.1.num.int <127 (0x7f)> + [39] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [40] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [41] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [42] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [43] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [44] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [45] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [46] #xxxx.1.1.num.int <305419896 (0x12345678)> + [47] #xxxx.1.1.num.int <1193046 (0x123456)> + [48] #xxxx.1.1.num.int <4660 (0x1234)> + [49] #xxxx.1.1.num.int <18 (0x12)> + [50] #xxxx.1.1.num.int <0 (0x0)> + [51] #0.0.nil + [52] #xxxx.1.1.num.bool <0 (0x0)> + [53] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.3.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <78934 (0x13456)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <97 (0x61)> + [23] #xxxx.1.1.num.int <92 (0x5c)> + [24] #xxxx.1.1.num.int <39 (0x27)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <10 (0xa)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #xxxx.1.1.num.int <256 (0x100)> + [35] #xxxx.1.1.num.int <128 (0x80)> + [36] #xxxx.1.1.num.int <127 (0x7f)> + [37] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [39] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [44] #xxxx.1.1.num.int <305419896 (0x12345678)> + [45] #xxxx.1.1.num.int <1193046 (0x123456)> + [46] #xxxx.1.1.num.int <4660 (0x1234)> + [47] #xxxx.1.1.num.int <18 (0x12)> + [48] #xxxx.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #xxxx.1.1.num.bool <0 (0x0)> + [51] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0000_constants/code.log.ref b/tests/0000_constants/code.log.ref new file mode 100644 index 0000000..e199474 --- /dev/null +++ b/tests/0000_constants/code.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a word 18 5b [ + 46 0x0020c word 18 5d ] + 33 47 0x0020e word 18 5b [ + 48 0x00210 int 81 0a 10 + 49 0x00212 int 81 14 20 + 50 0x00214 int 81 1e 30 + 51 0x00216 word 18 5d ] + 34 52 0x00218 word 18 5b [ + 53 0x0021a int 11 1 + 54 0x0021b int 21 2 + 55 0x0021c word 18 5b [ + 56 0x0021e int 31 3 + 57 0x0021f word 18 5d ] + 58 0x00221 int 41 4 + 59 0x00222 word 18 5d ] + 36 60 0x00224 word 18 28 ( + 61 0x00226 word 18 29 ) + 37 62 0x00228 word 18 28 ( + 63 0x0022a str 37 61 31 30 "a10" + 64 0x0022e int 81 64 100 + 65 0x00230 str 37 61 32 30 "a20" + 66 0x00234 int 91 c8 00 200 + 67 0x00237 word 18 29 ) + 38 68 0x00239 word 18 28 ( + 69 0x0023b str 37 63 31 30 "c10" + 70 0x0023f int 81 0a 10 + 71 0x00241 str 37 63 32 30 "c20" + 72 0x00245 word 18 29 ) + 39 73 0x00247 word 18 28 ( + 74 0x00249 str 17 61 "a" + 75 0x0024b int 11 1 + 76 0x0024c str 17 62 "b" + 77 0x0024e int 21 2 + 78 0x0024f str 17 63 "c" + 79 0x00251 word 18 28 ( + 80 0x00253 str 17 64 "d" + 81 0x00255 int 41 4 + 82 0x00256 word 18 29 ) + 83 0x00258 word 18 29 ) diff --git a/tests/0000_constants/code1.log.ref b/tests/0000_constants/code1.log.ref new file mode 100644 index 0000000..b850dad --- /dev/null +++ b/tests/0000_constants/code1.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a word 18 5b [ + 46 0x0020c word 18 5d ] + 33 47 0x0020e xref 44 [ + 48 0x0020f int 81 0a 10 + 49 0x00211 int 81 14 20 + 50 0x00213 int 81 1e 30 + 51 0x00215 word 18 5d ] + 34 52 0x00217 word 18 5b [ + 53 0x00219 int 11 1 + 54 0x0021a int 21 2 + 55 0x0021b word 18 5b [ + 56 0x0021d int 31 3 + 57 0x0021e word 18 5d ] + 58 0x00220 int 41 4 + 59 0x00221 word 18 5d ] + 36 60 0x00223 word 18 28 ( + 61 0x00225 word 18 29 ) + 37 62 0x00227 xref 44 ( + 63 0x00228 str 37 61 31 30 "a10" + 64 0x0022c int 81 64 100 + 65 0x0022e str 37 61 32 30 "a20" + 66 0x00232 int 91 c8 00 200 + 67 0x00235 word 18 29 ) + 38 68 0x00237 word 18 28 ( + 69 0x00239 str 37 63 31 30 "c10" + 70 0x0023d int 81 0a 10 + 71 0x0023f str 37 63 32 30 "c20" + 72 0x00243 word 18 29 ) + 39 73 0x00245 word 18 28 ( + 74 0x00247 str 17 61 "a" + 75 0x00249 int 11 1 + 76 0x0024a str 17 62 "b" + 77 0x0024c int 21 2 + 78 0x0024d str 17 63 "c" + 79 0x0024f word 18 28 ( + 80 0x00251 str 17 64 "d" + 81 0x00253 int 41 4 + 82 0x00254 word 18 29 ) + 83 0x00256 word 18 29 ) diff --git a/tests/0000_constants/code2.log.ref b/tests/0000_constants/code2.log.ref new file mode 100644 index 0000000..bb6609b --- /dev/null +++ b/tests/0000_constants/code2.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a prim 23 [ + 46 0x0020b prim 33 ] + 33 47 0x0020c prim 23 [ + 48 0x0020d int 81 0a 10 + 49 0x0020f int 81 14 20 + 50 0x00211 int 81 1e 30 + 51 0x00213 prim 33 ] + 34 52 0x00214 prim 23 [ + 53 0x00215 int 11 1 + 54 0x00216 int 21 2 + 55 0x00217 prim 23 [ + 56 0x00218 int 31 3 + 57 0x00219 prim 33 ] + 58 0x0021a int 41 4 + 59 0x0021b prim 33 ] + 36 60 0x0021c prim 43 ( + 61 0x0021d prim 53 ) + 37 62 0x0021e prim 43 ( + 63 0x0021f str 37 61 31 30 "a10" + 64 0x00223 int 81 64 100 + 65 0x00225 str 37 61 32 30 "a20" + 66 0x00229 int 91 c8 00 200 + 67 0x0022c prim 53 ) + 38 68 0x0022d prim 43 ( + 69 0x0022e str 37 63 31 30 "c10" + 70 0x00232 int 81 0a 10 + 71 0x00234 str 37 63 32 30 "c20" + 72 0x00238 prim 53 ) + 39 73 0x00239 prim 43 ( + 74 0x0023a str 17 61 "a" + 75 0x0023c int 11 1 + 76 0x0023d str 17 62 "b" + 77 0x0023f int 21 2 + 78 0x00240 str 17 63 "c" + 79 0x00242 prim 43 ( + 80 0x00243 str 17 64 "d" + 81 0x00245 int 41 4 + 82 0x00246 prim 53 ) + 83 0x00247 prim 53 ) diff --git a/tests/0000_constants/main.gs b/tests/0000_constants/main.gs new file mode 100644 index 0000000..af22675 --- /dev/null +++ b/tests/0000_constants/main.gs @@ -0,0 +1,42 @@ +# constant values + +true false nil + +0 +0x12 +0x1234 +0x123456 +0x12345678 +0x123456789a +0x123456789abcdef0 +-0x123456789abcdef0 +-0x6dcba98765432110 +0x6dcba98765432110 +0xfffffffe +-0xfffffffe +0x7f 0x80 0x100 -1 -2 -128 -129 +-0x1 -0xfe + +'\x00' '\n' '\t' '\'' '\\' 'a' '€' +'\u20ac' +'\U00013456' +'\U12345678' + +"€" +"€ +XX\nX" +"1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 +56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 +2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + +{ } +{ 100 200 300 } + +[ ] +[ 10 20 30 ] +[ 1 2 [ 3 ] 4 ] + +( ) +( "a10" 100 "a20" 200 ) +( "c10" 10 "c20" ) +( "a" 1 "b" 2 "c" ( "d" 4 ) ) diff --git a/tests/0000_constants/mem.log.ref b/tests/0000_constants/mem.log.ref new file mode 100644 index 0000000..2db7a44 --- /dev/null +++ b/tests/0000_constants/mem.log.ref @@ -0,0 +1,960 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 604] + 8: 227.01, 0x001d6cd0[ 72] + 9: 188.01, 0x001d6d20[ 56] + 10: 231.01, 0x001d6d60[ 20] + 11: 235.01, 0x001d6d7c[ 12] + 12: 237.01, 0x001d6d90[ 24] + 13: 243.01, 0x001d6db0[ 28] + 14: 247.01, 0x001d6dd4[ 28] + 15: 187.01, 0x001d6df8[ 224] + 16: 238.01, 0x001d6ee0[ 140] + 17: 255.01, 0x001d6f74[ 20] + 18: 256.01, 0x001d6f90[ 36] + 19: 0.00, 0x001d6fbc[14848068] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.14.mem.ro + 75 51 12 a9 42 7a ad 60 12 02 00 01 81 12 91 34 uQ..Bz.`.......4 + 12 a1 56 34 12 b1 78 56 34 12 c1 9a 78 56 34 12 ..V4..xV4...xV4. + f1 f0 de bc 9a 78 56 34 12 f1 10 21 43 65 87 a9 .....xV4...!Ce.. + cb ed f1 f0 de bc 9a 78 56 34 92 f1 10 21 43 65 .......xV4...!Ce + 87 a9 cb 6d c1 fe ff ff ff 00 c1 02 00 00 00 ff ...m............ + 81 7f 91 80 00 91 00 01 81 ff 81 fe 81 80 91 7f ................ + ff 81 ff 91 02 ff 01 81 0a 81 09 81 27 81 5c 81 ............'.\. + 61 91 ac 20 91 ac 20 a1 56 34 01 b1 78 56 34 12 a.. .. .V4..xV4. + 37 e2 82 ac 87 e2 82 ac 0a 58 58 0a 58 d7 6e 01 7........XX.X.n. + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 33 34 0a 35 36 37 38 31 32 33 34 35 36 37 38 31 34.5678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 33 34 35 36 37 38 31 32 33 2345678345678123 + 34 35 36 37 38 31 0a 32 33 34 35 36 37 38 31 32 456781.234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 16 13 34567812345678.. + 96 81 64 91 c8 00 91 2c 01 13 18 5b 18 5d 18 5b ..d....,...[.].[ + 81 0a 81 14 81 1e 18 5d 18 5b 11 21 18 5b 31 18 .......].[.!.[1. + 5d 41 18 5d 18 28 18 29 18 28 37 61 31 30 81 64 ]A.].(.).(7a10.d + 37 61 32 30 91 c8 00 18 29 18 28 37 63 31 30 81 7a20....).(7c10. + 0a 37 63 32 30 18 29 18 28 17 61 11 17 62 21 17 .7c20.).(.a..b!. + 63 18 28 17 64 41 18 29 18 29 c.(.dA.).) + #187.1.1.array + [ 0] #189.1.1.num.bool <1 (0x1)> + [ 1] #190.1.1.num.bool <0 (0x0)> + [ 2] #0.0.nil + [ 3] #191.1.1.num.int <0 (0x0)> + [ 4] #192.1.1.num.int <18 (0x12)> + [ 5] #193.1.1.num.int <4660 (0x1234)> + [ 6] #194.1.1.num.int <1193046 (0x123456)> + [ 7] #195.1.1.num.int <305419896 (0x12345678)> + [ 8] #196.1.1.num.int <78187493530 (0x123456789a)> + [ 9] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #201.1.1.num.int <4294967294 (0xfffffffe)> + [14] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #203.1.1.num.int <127 (0x7f)> + [16] #204.1.1.num.int <128 (0x80)> + [17] #205.1.1.num.int <256 (0x100)> + [18] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #212.1.1.num.int <0 (0x0)> + [25] #213.1.1.num.int <10 (0xa)> + [26] #214.1.1.num.int <9 (0x9)> + [27] #215.1.1.num.int <39 (0x27)> + [28] #216.1.1.num.int <92 (0x5c)> + [29] #217.1.1.num.int <97 (0x61)> + [30] #218.1.1.num.int <8364 (0x20ac)> + [31] #219.1.1.num.int <8364 (0x20ac)> + [32] #220.1.1.num.int <78934 (0x13456)> + [33] #221.1.1.num.int <305419896 (0x12345678)> + [34] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [35] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [36] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [37] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [38] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [39] #227.1.1.array + [40] #231.1.1.array + [41] #237.1.1.array + [42] #238.1.1.hash + [43] #243.1.1.hash + [44] #247.1.1.hash + [45] #256.1.1.hash + #188.1.1.ctx.func + type 17, ip 0x25a (0x25a) + code #186.1.14.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.bool <1 (0x1)> + #190.1.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.num.int <18 (0x12)> + #193.1.1.num.int <4660 (0x1234)> + #194.1.1.num.int <1193046 (0x123456)> + #195.1.1.num.int <305419896 (0x12345678)> + #196.1.1.num.int <78187493530 (0x123456789a)> + #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + #201.1.1.num.int <4294967294 (0xfffffffe)> + #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + #203.1.1.num.int <127 (0x7f)> + #204.1.1.num.int <128 (0x80)> + #205.1.1.num.int <256 (0x100)> + #206.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <-2 (0xfffffffffffffffe)> + #208.1.1.num.int <-128 (0xffffffffffffff80)> + #209.1.1.num.int <-129 (0xffffffffffffff7f)> + #210.1.1.num.int <-1 (0xffffffffffffffff)> + #211.1.1.num.int <-254 (0xffffffffffffff02)> + #212.1.1.num.int <0 (0x0)> + #213.1.1.num.int <10 (0xa)> + #214.1.1.num.int <9 (0x9)> + #215.1.1.num.int <39 (0x27)> + #216.1.1.num.int <92 (0x5c)> + #217.1.1.num.int <97 (0x61)> + #218.1.1.num.int <8364 (0x20ac)> + #219.1.1.num.int <8364 (0x20ac)> + #220.1.1.num.int <78934 (0x13456)> + #221.1.1.num.int <305419896 (0x12345678)> + #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + e2 82 ac ... + #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + e2 82 ac 0a 58 58 0a 58 ....XX.X + #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 33 34 0a 35 36 37 38 31 32 33 34 35 36 37 38 31 34.5678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 33 34 35 36 37 38 31 32 33 2345678345678123 + 34 35 36 37 38 31 0a 32 33 34 35 36 37 38 31 32 456781.234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 34567812345678 + #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + 13 . + #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + 81 64 91 c8 00 91 2c 01 13 .d....,.. + #227.1.1.array + #228.1.1.num.int <10 (0xa)> + #229.1.1.num.int <20 (0x14)> + #230.1.1.num.int <30 (0x1e)> + #231.1.1.array + [ 0] #228.1.1.num.int <10 (0xa)> + [ 1] #229.1.1.num.int <20 (0x14)> + [ 2] #230.1.1.num.int <30 (0x1e)> + #232.1.1.num.int <1 (0x1)> + #233.1.1.num.int <2 (0x2)> + #234.1.1.num.int <3 (0x3)> + #235.1.1.array + [ 0] #234.1.1.num.int <3 (0x3)> + #236.1.1.num.int <4 (0x4)> + #237.1.1.array + [ 0] #232.1.1.num.int <1 (0x1)> + [ 1] #233.1.1.num.int <2 (0x2)> + [ 2] #235.1.1.array + [ 3] #236.1.1.num.int <4 (0x4)> + #238.1.1.hash + #239.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x22b, size 3, "a10"> + 61 31 30 a10 + #240.1.1.num.int <100 (0x64)> + #241.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x231, size 3, "a20"> + 61 32 30 a20 + #242.1.1.num.int <200 (0xc8)> + #243.1.1.hash + #239.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x22b, size 3, "a10"> => #240.1.1.num.int <100 (0x64)> + #241.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x231, size 3, "a20"> => #242.1.1.num.int <200 (0xc8)> + #244.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x23c, size 3, "c10"> + 63 31 30 c10 + #245.1.1.num.int <10 (0xa)> + #246.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x242, size 3, "c20"> + 63 32 30 c20 + #247.1.1.hash + #244.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x23c, size 3, "c10"> => #245.1.1.num.int <10 (0xa)> + #246.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x242, size 3, "c20"> => #0.0.nil + #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + 61 a + #249.1.1.num.int <1 (0x1)> + #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + 62 b + #251.1.1.num.int <2 (0x2)> + #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + 63 c + #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + 64 d + #254.1.1.num.int <4 (0x4)> + #255.1.1.hash + #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> => #254.1.1.num.int <4 (0x4)> + #256.1.1.hash + #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> => #249.1.1.num.int <1 (0x1)> + #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> => #251.1.1.num.int <2 (0x2)> + #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> => #255.1.1.hash diff --git a/tests/0000_constants/screen.log.ref b/tests/0000_constants/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0000_constants/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0000_constants/trace.log.ref b/tests/0000_constants/trace.log.ref new file mode 100644 index 0000000..6b0a636 --- /dev/null +++ b/tests/0000_constants/trace.log.ref @@ -0,0 +1,2911 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <0 (0x0)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.1.num.bool <0 (0x0)> + [2] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xb, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> + [1] #0.0.nil + [2] #190.1.1.num.bool <0 (0x0)> + [3] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xc, type 1, 18 (0x12) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <18 (0x12)> + [1] #191.1.1.num.int <0 (0x0)> + [2] #0.0.nil + [3] #190.1.1.num.bool <0 (0x0)> + [4] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 4660 (0x1234) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4660 (0x1234)> + [1] #192.1.1.num.int <18 (0x12)> + [2] #191.1.1.num.int <0 (0x0)> + [3] #0.0.nil + [4] #190.1.1.num.bool <0 (0x0)> + [5] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x11, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <1193046 (0x123456)> + [1] #193.1.1.num.int <4660 (0x1234)> + [2] #192.1.1.num.int <18 (0x12)> + [3] #191.1.1.num.int <0 (0x0)> + [4] #0.0.nil + [5] #190.1.1.num.bool <0 (0x0)> + [6] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x15, type 1, 305419896 (0x12345678) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <305419896 (0x12345678)> + [1] #194.1.1.num.int <1193046 (0x123456)> + [2] #193.1.1.num.int <4660 (0x1234)> + [3] #192.1.1.num.int <18 (0x12)> + [4] #191.1.1.num.int <0 (0x0)> + [5] #0.0.nil + [6] #190.1.1.num.bool <0 (0x0)> + [7] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x1a, type 1, 78187493530 (0x123456789a) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <78187493530 (0x123456789a)> + [1] #195.1.1.num.int <305419896 (0x12345678)> + [2] #194.1.1.num.int <1193046 (0x123456)> + [3] #193.1.1.num.int <4660 (0x1234)> + [4] #192.1.1.num.int <18 (0x12)> + [5] #191.1.1.num.int <0 (0x0)> + [6] #0.0.nil + [7] #190.1.1.num.bool <0 (0x0)> + [8] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20, type 1, 1311768467463790320 (0x123456789abcdef0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [1] #196.1.1.num.int <78187493530 (0x123456789a)> + [2] #195.1.1.num.int <305419896 (0x12345678)> + [3] #194.1.1.num.int <1193046 (0x123456)> + [4] #193.1.1.num.int <4660 (0x1234)> + [5] #192.1.1.num.int <18 (0x12)> + [6] #191.1.1.num.int <0 (0x0)> + [7] #0.0.nil + [8] #190.1.1.num.bool <0 (0x0)> + [9] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x29, type 1, -1311768467463790320 (0xedcba98765432110) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [1] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [2] #196.1.1.num.int <78187493530 (0x123456789a)> + [3] #195.1.1.num.int <305419896 (0x12345678)> + [4] #194.1.1.num.int <1193046 (0x123456)> + [5] #193.1.1.num.int <4660 (0x1234)> + [6] #192.1.1.num.int <18 (0x12)> + [7] #191.1.1.num.int <0 (0x0)> + [8] #0.0.nil + [9] #190.1.1.num.bool <0 (0x0)> + [10] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x32, type 1, -7911603569390985488 (0x923456789abcdef0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [1] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [2] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [3] #196.1.1.num.int <78187493530 (0x123456789a)> + [4] #195.1.1.num.int <305419896 (0x12345678)> + [5] #194.1.1.num.int <1193046 (0x123456)> + [6] #193.1.1.num.int <4660 (0x1234)> + [7] #192.1.1.num.int <18 (0x12)> + [8] #191.1.1.num.int <0 (0x0)> + [9] #0.0.nil + [10] #190.1.1.num.bool <0 (0x0)> + [11] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x3b, type 1, 7911603569390985488 (0x6dcba98765432110) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [1] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [2] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [3] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [4] #196.1.1.num.int <78187493530 (0x123456789a)> + [5] #195.1.1.num.int <305419896 (0x12345678)> + [6] #194.1.1.num.int <1193046 (0x123456)> + [7] #193.1.1.num.int <4660 (0x1234)> + [8] #192.1.1.num.int <18 (0x12)> + [9] #191.1.1.num.int <0 (0x0)> + [10] #0.0.nil + [11] #190.1.1.num.bool <0 (0x0)> + [12] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 1, 4294967294 (0xfffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <4294967294 (0xfffffffe)> + [1] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [2] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [3] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [4] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [5] #196.1.1.num.int <78187493530 (0x123456789a)> + [6] #195.1.1.num.int <305419896 (0x12345678)> + [7] #194.1.1.num.int <1193046 (0x123456)> + [8] #193.1.1.num.int <4660 (0x1234)> + [9] #192.1.1.num.int <18 (0x12)> + [10] #191.1.1.num.int <0 (0x0)> + [11] #0.0.nil + [12] #190.1.1.num.bool <0 (0x0)> + [13] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x4a, type 1, -4294967294 (0xffffffff00000002) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [1] #201.1.1.num.int <4294967294 (0xfffffffe)> + [2] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [3] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [4] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [5] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [6] #196.1.1.num.int <78187493530 (0x123456789a)> + [7] #195.1.1.num.int <305419896 (0x12345678)> + [8] #194.1.1.num.int <1193046 (0x123456)> + [9] #193.1.1.num.int <4660 (0x1234)> + [10] #192.1.1.num.int <18 (0x12)> + [11] #191.1.1.num.int <0 (0x0)> + [12] #0.0.nil + [13] #190.1.1.num.bool <0 (0x0)> + [14] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 1, 127 (0x7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <127 (0x7f)> + [1] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [2] #201.1.1.num.int <4294967294 (0xfffffffe)> + [3] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [4] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [5] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [6] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [7] #196.1.1.num.int <78187493530 (0x123456789a)> + [8] #195.1.1.num.int <305419896 (0x12345678)> + [9] #194.1.1.num.int <1193046 (0x123456)> + [10] #193.1.1.num.int <4660 (0x1234)> + [11] #192.1.1.num.int <18 (0x12)> + [12] #191.1.1.num.int <0 (0x0)> + [13] #0.0.nil + [14] #190.1.1.num.bool <0 (0x0)> + [15] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 1, 128 (0x80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <128 (0x80)> + [1] #203.1.1.num.int <127 (0x7f)> + [2] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [3] #201.1.1.num.int <4294967294 (0xfffffffe)> + [4] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [5] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [6] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [7] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [8] #196.1.1.num.int <78187493530 (0x123456789a)> + [9] #195.1.1.num.int <305419896 (0x12345678)> + [10] #194.1.1.num.int <1193046 (0x123456)> + [11] #193.1.1.num.int <4660 (0x1234)> + [12] #192.1.1.num.int <18 (0x12)> + [13] #191.1.1.num.int <0 (0x0)> + [14] #0.0.nil + [15] #190.1.1.num.bool <0 (0x0)> + [16] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 1, 256 (0x100) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <256 (0x100)> + [1] #204.1.1.num.int <128 (0x80)> + [2] #203.1.1.num.int <127 (0x7f)> + [3] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [4] #201.1.1.num.int <4294967294 (0xfffffffe)> + [5] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [6] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [7] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [8] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [9] #196.1.1.num.int <78187493530 (0x123456789a)> + [10] #195.1.1.num.int <305419896 (0x12345678)> + [11] #194.1.1.num.int <1193046 (0x123456)> + [12] #193.1.1.num.int <4660 (0x1234)> + [13] #192.1.1.num.int <18 (0x12)> + [14] #191.1.1.num.int <0 (0x0)> + [15] #0.0.nil + [16] #190.1.1.num.bool <0 (0x0)> + [17] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <256 (0x100)> + [2] #204.1.1.num.int <128 (0x80)> + [3] #203.1.1.num.int <127 (0x7f)> + [4] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [5] #201.1.1.num.int <4294967294 (0xfffffffe)> + [6] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [7] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [8] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [9] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #196.1.1.num.int <78187493530 (0x123456789a)> + [11] #195.1.1.num.int <305419896 (0x12345678)> + [12] #194.1.1.num.int <1193046 (0x123456)> + [13] #193.1.1.num.int <4660 (0x1234)> + [14] #192.1.1.num.int <18 (0x12)> + [15] #191.1.1.num.int <0 (0x0)> + [16] #0.0.nil + [17] #190.1.1.num.bool <0 (0x0)> + [18] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5a, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <256 (0x100)> + [3] #204.1.1.num.int <128 (0x80)> + [4] #203.1.1.num.int <127 (0x7f)> + [5] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [6] #201.1.1.num.int <4294967294 (0xfffffffe)> + [7] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [8] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [9] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [10] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [11] #196.1.1.num.int <78187493530 (0x123456789a)> + [12] #195.1.1.num.int <305419896 (0x12345678)> + [13] #194.1.1.num.int <1193046 (0x123456)> + [14] #193.1.1.num.int <4660 (0x1234)> + [15] #192.1.1.num.int <18 (0x12)> + [16] #191.1.1.num.int <0 (0x0)> + [17] #0.0.nil + [18] #190.1.1.num.bool <0 (0x0)> + [19] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5c, type 1, -128 (0xffffffffffffff80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <256 (0x100)> + [4] #204.1.1.num.int <128 (0x80)> + [5] #203.1.1.num.int <127 (0x7f)> + [6] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [7] #201.1.1.num.int <4294967294 (0xfffffffe)> + [8] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [9] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [10] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [12] #196.1.1.num.int <78187493530 (0x123456789a)> + [13] #195.1.1.num.int <305419896 (0x12345678)> + [14] #194.1.1.num.int <1193046 (0x123456)> + [15] #193.1.1.num.int <4660 (0x1234)> + [16] #192.1.1.num.int <18 (0x12)> + [17] #191.1.1.num.int <0 (0x0)> + [18] #0.0.nil + [19] #190.1.1.num.bool <0 (0x0)> + [20] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 1, -129 (0xffffffffffffff7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <256 (0x100)> + [5] #204.1.1.num.int <128 (0x80)> + [6] #203.1.1.num.int <127 (0x7f)> + [7] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [8] #201.1.1.num.int <4294967294 (0xfffffffe)> + [9] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [10] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [11] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [12] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [13] #196.1.1.num.int <78187493530 (0x123456789a)> + [14] #195.1.1.num.int <305419896 (0x12345678)> + [15] #194.1.1.num.int <1193046 (0x123456)> + [16] #193.1.1.num.int <4660 (0x1234)> + [17] #192.1.1.num.int <18 (0x12)> + [18] #191.1.1.num.int <0 (0x0)> + [19] #0.0.nil + [20] #190.1.1.num.bool <0 (0x0)> + [21] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <256 (0x100)> + [6] #204.1.1.num.int <128 (0x80)> + [7] #203.1.1.num.int <127 (0x7f)> + [8] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [9] #201.1.1.num.int <4294967294 (0xfffffffe)> + [10] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [11] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [13] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [14] #196.1.1.num.int <78187493530 (0x123456789a)> + [15] #195.1.1.num.int <305419896 (0x12345678)> + [16] #194.1.1.num.int <1193046 (0x123456)> + [17] #193.1.1.num.int <4660 (0x1234)> + [18] #192.1.1.num.int <18 (0x12)> + [19] #191.1.1.num.int <0 (0x0)> + [20] #0.0.nil + [21] #190.1.1.num.bool <0 (0x0)> + [22] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x63, type 1, -254 (0xffffffffffffff02) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [1] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <256 (0x100)> + [7] #204.1.1.num.int <128 (0x80)> + [8] #203.1.1.num.int <127 (0x7f)> + [9] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [10] #201.1.1.num.int <4294967294 (0xfffffffe)> + [11] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [12] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [13] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [14] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [15] #196.1.1.num.int <78187493530 (0x123456789a)> + [16] #195.1.1.num.int <305419896 (0x12345678)> + [17] #194.1.1.num.int <1193046 (0x123456)> + [18] #193.1.1.num.int <4660 (0x1234)> + [19] #192.1.1.num.int <18 (0x12)> + [20] #191.1.1.num.int <0 (0x0)> + [21] #0.0.nil + [22] #190.1.1.num.bool <0 (0x0)> + [23] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x66, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <0 (0x0)> + [1] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [2] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <256 (0x100)> + [8] #204.1.1.num.int <128 (0x80)> + [9] #203.1.1.num.int <127 (0x7f)> + [10] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [11] #201.1.1.num.int <4294967294 (0xfffffffe)> + [12] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [14] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [15] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [16] #196.1.1.num.int <78187493530 (0x123456789a)> + [17] #195.1.1.num.int <305419896 (0x12345678)> + [18] #194.1.1.num.int <1193046 (0x123456)> + [19] #193.1.1.num.int <4660 (0x1234)> + [20] #192.1.1.num.int <18 (0x12)> + [21] #191.1.1.num.int <0 (0x0)> + [22] #0.0.nil + [23] #190.1.1.num.bool <0 (0x0)> + [24] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x67, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <10 (0xa)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [3] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <256 (0x100)> + [9] #204.1.1.num.int <128 (0x80)> + [10] #203.1.1.num.int <127 (0x7f)> + [11] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [12] #201.1.1.num.int <4294967294 (0xfffffffe)> + [13] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [14] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [15] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [16] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [17] #196.1.1.num.int <78187493530 (0x123456789a)> + [18] #195.1.1.num.int <305419896 (0x12345678)> + [19] #194.1.1.num.int <1193046 (0x123456)> + [20] #193.1.1.num.int <4660 (0x1234)> + [21] #192.1.1.num.int <18 (0x12)> + [22] #191.1.1.num.int <0 (0x0)> + [23] #0.0.nil + [24] #190.1.1.num.bool <0 (0x0)> + [25] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <9 (0x9)> + [1] #213.1.1.num.int <10 (0xa)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [4] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <256 (0x100)> + [10] #204.1.1.num.int <128 (0x80)> + [11] #203.1.1.num.int <127 (0x7f)> + [12] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [13] #201.1.1.num.int <4294967294 (0xfffffffe)> + [14] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [15] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [16] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [17] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [18] #196.1.1.num.int <78187493530 (0x123456789a)> + [19] #195.1.1.num.int <305419896 (0x12345678)> + [20] #194.1.1.num.int <1193046 (0x123456)> + [21] #193.1.1.num.int <4660 (0x1234)> + [22] #192.1.1.num.int <18 (0x12)> + [23] #191.1.1.num.int <0 (0x0)> + [24] #0.0.nil + [25] #190.1.1.num.bool <0 (0x0)> + [26] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6b, type 1, 39 (0x27) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <39 (0x27)> + [1] #214.1.1.num.int <9 (0x9)> + [2] #213.1.1.num.int <10 (0xa)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [5] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <256 (0x100)> + [11] #204.1.1.num.int <128 (0x80)> + [12] #203.1.1.num.int <127 (0x7f)> + [13] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [14] #201.1.1.num.int <4294967294 (0xfffffffe)> + [15] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [16] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [17] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [18] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [19] #196.1.1.num.int <78187493530 (0x123456789a)> + [20] #195.1.1.num.int <305419896 (0x12345678)> + [21] #194.1.1.num.int <1193046 (0x123456)> + [22] #193.1.1.num.int <4660 (0x1234)> + [23] #192.1.1.num.int <18 (0x12)> + [24] #191.1.1.num.int <0 (0x0)> + [25] #0.0.nil + [26] #190.1.1.num.bool <0 (0x0)> + [27] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 1, 92 (0x5c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <92 (0x5c)> + [1] #215.1.1.num.int <39 (0x27)> + [2] #214.1.1.num.int <9 (0x9)> + [3] #213.1.1.num.int <10 (0xa)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [6] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #205.1.1.num.int <256 (0x100)> + [12] #204.1.1.num.int <128 (0x80)> + [13] #203.1.1.num.int <127 (0x7f)> + [14] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #201.1.1.num.int <4294967294 (0xfffffffe)> + [16] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [17] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [18] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [19] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [20] #196.1.1.num.int <78187493530 (0x123456789a)> + [21] #195.1.1.num.int <305419896 (0x12345678)> + [22] #194.1.1.num.int <1193046 (0x123456)> + [23] #193.1.1.num.int <4660 (0x1234)> + [24] #192.1.1.num.int <18 (0x12)> + [25] #191.1.1.num.int <0 (0x0)> + [26] #0.0.nil + [27] #190.1.1.num.bool <0 (0x0)> + [28] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6f, type 1, 97 (0x61) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <97 (0x61)> + [1] #216.1.1.num.int <92 (0x5c)> + [2] #215.1.1.num.int <39 (0x27)> + [3] #214.1.1.num.int <9 (0x9)> + [4] #213.1.1.num.int <10 (0xa)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [7] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #205.1.1.num.int <256 (0x100)> + [13] #204.1.1.num.int <128 (0x80)> + [14] #203.1.1.num.int <127 (0x7f)> + [15] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [16] #201.1.1.num.int <4294967294 (0xfffffffe)> + [17] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [18] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [19] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [20] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [21] #196.1.1.num.int <78187493530 (0x123456789a)> + [22] #195.1.1.num.int <305419896 (0x12345678)> + [23] #194.1.1.num.int <1193046 (0x123456)> + [24] #193.1.1.num.int <4660 (0x1234)> + [25] #192.1.1.num.int <18 (0x12)> + [26] #191.1.1.num.int <0 (0x0)> + [27] #0.0.nil + [28] #190.1.1.num.bool <0 (0x0)> + [29] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 1, 8364 (0x20ac) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <8364 (0x20ac)> + [1] #217.1.1.num.int <97 (0x61)> + [2] #216.1.1.num.int <92 (0x5c)> + [3] #215.1.1.num.int <39 (0x27)> + [4] #214.1.1.num.int <9 (0x9)> + [5] #213.1.1.num.int <10 (0xa)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [8] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #205.1.1.num.int <256 (0x100)> + [14] #204.1.1.num.int <128 (0x80)> + [15] #203.1.1.num.int <127 (0x7f)> + [16] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [17] #201.1.1.num.int <4294967294 (0xfffffffe)> + [18] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [19] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [20] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [21] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [22] #196.1.1.num.int <78187493530 (0x123456789a)> + [23] #195.1.1.num.int <305419896 (0x12345678)> + [24] #194.1.1.num.int <1193046 (0x123456)> + [25] #193.1.1.num.int <4660 (0x1234)> + [26] #192.1.1.num.int <18 (0x12)> + [27] #191.1.1.num.int <0 (0x0)> + [28] #0.0.nil + [29] #190.1.1.num.bool <0 (0x0)> + [30] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x74, type 1, 8364 (0x20ac) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <8364 (0x20ac)> + [1] #218.1.1.num.int <8364 (0x20ac)> + [2] #217.1.1.num.int <97 (0x61)> + [3] #216.1.1.num.int <92 (0x5c)> + [4] #215.1.1.num.int <39 (0x27)> + [5] #214.1.1.num.int <9 (0x9)> + [6] #213.1.1.num.int <10 (0xa)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [9] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #205.1.1.num.int <256 (0x100)> + [15] #204.1.1.num.int <128 (0x80)> + [16] #203.1.1.num.int <127 (0x7f)> + [17] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [18] #201.1.1.num.int <4294967294 (0xfffffffe)> + [19] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [20] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [21] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [22] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [23] #196.1.1.num.int <78187493530 (0x123456789a)> + [24] #195.1.1.num.int <305419896 (0x12345678)> + [25] #194.1.1.num.int <1193046 (0x123456)> + [26] #193.1.1.num.int <4660 (0x1234)> + [27] #192.1.1.num.int <18 (0x12)> + [28] #191.1.1.num.int <0 (0x0)> + [29] #0.0.nil + [30] #190.1.1.num.bool <0 (0x0)> + [31] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 1, 78934 (0x13456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <78934 (0x13456)> + [1] #219.1.1.num.int <8364 (0x20ac)> + [2] #218.1.1.num.int <8364 (0x20ac)> + [3] #217.1.1.num.int <97 (0x61)> + [4] #216.1.1.num.int <92 (0x5c)> + [5] #215.1.1.num.int <39 (0x27)> + [6] #214.1.1.num.int <9 (0x9)> + [7] #213.1.1.num.int <10 (0xa)> + [8] #212.1.1.num.int <0 (0x0)> + [9] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [10] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #205.1.1.num.int <256 (0x100)> + [16] #204.1.1.num.int <128 (0x80)> + [17] #203.1.1.num.int <127 (0x7f)> + [18] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [19] #201.1.1.num.int <4294967294 (0xfffffffe)> + [20] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [21] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [22] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [23] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [24] #196.1.1.num.int <78187493530 (0x123456789a)> + [25] #195.1.1.num.int <305419896 (0x12345678)> + [26] #194.1.1.num.int <1193046 (0x123456)> + [27] #193.1.1.num.int <4660 (0x1234)> + [28] #192.1.1.num.int <18 (0x12)> + [29] #191.1.1.num.int <0 (0x0)> + [30] #0.0.nil + [31] #190.1.1.num.bool <0 (0x0)> + [32] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 1, 305419896 (0x12345678) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <305419896 (0x12345678)> + [1] #220.1.1.num.int <78934 (0x13456)> + [2] #219.1.1.num.int <8364 (0x20ac)> + [3] #218.1.1.num.int <8364 (0x20ac)> + [4] #217.1.1.num.int <97 (0x61)> + [5] #216.1.1.num.int <92 (0x5c)> + [6] #215.1.1.num.int <39 (0x27)> + [7] #214.1.1.num.int <9 (0x9)> + [8] #213.1.1.num.int <10 (0xa)> + [9] #212.1.1.num.int <0 (0x0)> + [10] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [11] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #205.1.1.num.int <256 (0x100)> + [17] #204.1.1.num.int <128 (0x80)> + [18] #203.1.1.num.int <127 (0x7f)> + [19] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [20] #201.1.1.num.int <4294967294 (0xfffffffe)> + [21] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [22] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [23] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [24] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [25] #196.1.1.num.int <78187493530 (0x123456789a)> + [26] #195.1.1.num.int <305419896 (0x12345678)> + [27] #194.1.1.num.int <1193046 (0x123456)> + [28] #193.1.1.num.int <4660 (0x1234)> + [29] #192.1.1.num.int <18 (0x12)> + [30] #191.1.1.num.int <0 (0x0)> + [31] #0.0.nil + [32] #190.1.1.num.bool <0 (0x0)> + [33] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x80, type 7, 129[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x81, size 3, "€"> + [1] #221.1.1.num.int <305419896 (0x12345678)> + [2] #220.1.1.num.int <78934 (0x13456)> + [3] #219.1.1.num.int <8364 (0x20ac)> + [4] #218.1.1.num.int <8364 (0x20ac)> + [5] #217.1.1.num.int <97 (0x61)> + [6] #216.1.1.num.int <92 (0x5c)> + [7] #215.1.1.num.int <39 (0x27)> + [8] #214.1.1.num.int <9 (0x9)> + [9] #213.1.1.num.int <10 (0xa)> + [10] #212.1.1.num.int <0 (0x0)> + [11] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [12] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #205.1.1.num.int <256 (0x100)> + [18] #204.1.1.num.int <128 (0x80)> + [19] #203.1.1.num.int <127 (0x7f)> + [20] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [21] #201.1.1.num.int <4294967294 (0xfffffffe)> + [22] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [23] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [24] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [25] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [26] #196.1.1.num.int <78187493530 (0x123456789a)> + [27] #195.1.1.num.int <305419896 (0x12345678)> + [28] #194.1.1.num.int <1193046 (0x123456)> + [29] #193.1.1.num.int <4660 (0x1234)> + [30] #192.1.1.num.int <18 (0x12)> + [31] #191.1.1.num.int <0 (0x0)> + [32] #0.0.nil + [33] #190.1.1.num.bool <0 (0x0)> + [34] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x84, type 7, 133[8] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x85, size 8, "€ XX X"> + [1] #222.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x81, size 3, "€"> + [2] #221.1.1.num.int <305419896 (0x12345678)> + [3] #220.1.1.num.int <78934 (0x13456)> + [4] #219.1.1.num.int <8364 (0x20ac)> + [5] #218.1.1.num.int <8364 (0x20ac)> + [6] #217.1.1.num.int <97 (0x61)> + [7] #216.1.1.num.int <92 (0x5c)> + [8] #215.1.1.num.int <39 (0x27)> + [9] #214.1.1.num.int <9 (0x9)> + [10] #213.1.1.num.int <10 (0xa)> + [11] #212.1.1.num.int <0 (0x0)> + [12] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [13] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #205.1.1.num.int <256 (0x100)> + [19] #204.1.1.num.int <128 (0x80)> + [20] #203.1.1.num.int <127 (0x7f)> + [21] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [22] #201.1.1.num.int <4294967294 (0xfffffffe)> + [23] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [24] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [25] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [26] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [27] #196.1.1.num.int <78187493530 (0x123456789a)> + [28] #195.1.1.num.int <305419896 (0x12345678)> + [29] #194.1.1.num.int <1193046 (0x123456)> + [30] #193.1.1.num.int <4660 (0x1234)> + [31] #192.1.1.num.int <18 (0x12)> + [32] #191.1.1.num.int <0 (0x0)> + [33] #0.0.nil + [34] #190.1.1.num.bool <0 (0x0)> + [35] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x8d, type 7, 144[366] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [1] #223.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x85, size 8, "€ XX X"> + [2] #222.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x81, size 3, "€"> + [3] #221.1.1.num.int <305419896 (0x12345678)> + [4] #220.1.1.num.int <78934 (0x13456)> + [5] #219.1.1.num.int <8364 (0x20ac)> + [6] #218.1.1.num.int <8364 (0x20ac)> + [7] #217.1.1.num.int <97 (0x61)> + [8] #216.1.1.num.int <92 (0x5c)> + [9] #215.1.1.num.int <39 (0x27)> + [10] #214.1.1.num.int <9 (0x9)> + [11] #213.1.1.num.int <10 (0xa)> + [12] #212.1.1.num.int <0 (0x0)> + [13] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [14] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #205.1.1.num.int <256 (0x100)> + [20] #204.1.1.num.int <128 (0x80)> + [21] #203.1.1.num.int <127 (0x7f)> + [22] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [23] #201.1.1.num.int <4294967294 (0xfffffffe)> + [24] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [25] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [26] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [27] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [28] #196.1.1.num.int <78187493530 (0x123456789a)> + [29] #195.1.1.num.int <305419896 (0x12345678)> + [30] #194.1.1.num.int <1193046 (0x123456)> + [31] #193.1.1.num.int <4660 (0x1234)> + [32] #192.1.1.num.int <18 (0x12)> + [33] #191.1.1.num.int <0 (0x0)> + [34] #0.0.nil + [35] #190.1.1.num.bool <0 (0x0)> + [36] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x1fe, type 6, 511[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x1ff, size 1> + [1] #224.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [2] #223.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x85, size 8, "€ XX X"> + [3] #222.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x81, size 3, "€"> + [4] #221.1.1.num.int <305419896 (0x12345678)> + [5] #220.1.1.num.int <78934 (0x13456)> + [6] #219.1.1.num.int <8364 (0x20ac)> + [7] #218.1.1.num.int <8364 (0x20ac)> + [8] #217.1.1.num.int <97 (0x61)> + [9] #216.1.1.num.int <92 (0x5c)> + [10] #215.1.1.num.int <39 (0x27)> + [11] #214.1.1.num.int <9 (0x9)> + [12] #213.1.1.num.int <10 (0xa)> + [13] #212.1.1.num.int <0 (0x0)> + [14] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [15] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #205.1.1.num.int <256 (0x100)> + [21] #204.1.1.num.int <128 (0x80)> + [22] #203.1.1.num.int <127 (0x7f)> + [23] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [24] #201.1.1.num.int <4294967294 (0xfffffffe)> + [25] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [26] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [27] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [28] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [29] #196.1.1.num.int <78187493530 (0x123456789a)> + [30] #195.1.1.num.int <305419896 (0x12345678)> + [31] #194.1.1.num.int <1193046 (0x123456)> + [32] #193.1.1.num.int <4660 (0x1234)> + [33] #192.1.1.num.int <18 (0x12)> + [34] #191.1.1.num.int <0 (0x0)> + [35] #0.0.nil + [36] #190.1.1.num.bool <0 (0x0)> + [37] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x200, type 6, 513[9] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [1] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [2] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [3] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [4] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [5] #221.1.1.num.int <305419896 (0x12345678)> + [6] #220.1.1.num.int <78934 (0x13456)> + [7] #219.1.1.num.int <8364 (0x20ac)> + [8] #218.1.1.num.int <8364 (0x20ac)> + [9] #217.1.1.num.int <97 (0x61)> + [10] #216.1.1.num.int <92 (0x5c)> + [11] #215.1.1.num.int <39 (0x27)> + [12] #214.1.1.num.int <9 (0x9)> + [13] #213.1.1.num.int <10 (0xa)> + [14] #212.1.1.num.int <0 (0x0)> + [15] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [16] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #205.1.1.num.int <256 (0x100)> + [22] #204.1.1.num.int <128 (0x80)> + [23] #203.1.1.num.int <127 (0x7f)> + [24] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [25] #201.1.1.num.int <4294967294 (0xfffffffe)> + [26] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [27] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [28] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [29] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [30] #196.1.1.num.int <78187493530 (0x123456789a)> + [31] #195.1.1.num.int <305419896 (0x12345678)> + [32] #194.1.1.num.int <1193046 (0x123456)> + [33] #193.1.1.num.int <4660 (0x1234)> + [34] #192.1.1.num.int <18 (0x12)> + [35] #191.1.1.num.int <0 (0x0)> + [36] #0.0.nil + [37] #190.1.1.num.bool <0 (0x0)> + [38] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20a, type 8, 523[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [2] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [3] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [5] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [6] #221.1.1.num.int <305419896 (0x12345678)> + [7] #220.1.1.num.int <78934 (0x13456)> + [8] #219.1.1.num.int <8364 (0x20ac)> + [9] #218.1.1.num.int <8364 (0x20ac)> + [10] #217.1.1.num.int <97 (0x61)> + [11] #216.1.1.num.int <92 (0x5c)> + [12] #215.1.1.num.int <39 (0x27)> + [13] #214.1.1.num.int <9 (0x9)> + [14] #213.1.1.num.int <10 (0xa)> + [15] #212.1.1.num.int <0 (0x0)> + [16] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #205.1.1.num.int <256 (0x100)> + [23] #204.1.1.num.int <128 (0x80)> + [24] #203.1.1.num.int <127 (0x7f)> + [25] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #201.1.1.num.int <4294967294 (0xfffffffe)> + [27] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #196.1.1.num.int <78187493530 (0x123456789a)> + [32] #195.1.1.num.int <305419896 (0x12345678)> + [33] #194.1.1.num.int <1193046 (0x123456)> + [34] #193.1.1.num.int <4660 (0x1234)> + [35] #192.1.1.num.int <18 (0x12)> + [36] #191.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #190.1.1.num.bool <0 (0x0)> + [39] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20c, type 8, 525[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.array + [1] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [2] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [3] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [5] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [6] #221.1.1.num.int <305419896 (0x12345678)> + [7] #220.1.1.num.int <78934 (0x13456)> + [8] #219.1.1.num.int <8364 (0x20ac)> + [9] #218.1.1.num.int <8364 (0x20ac)> + [10] #217.1.1.num.int <97 (0x61)> + [11] #216.1.1.num.int <92 (0x5c)> + [12] #215.1.1.num.int <39 (0x27)> + [13] #214.1.1.num.int <9 (0x9)> + [14] #213.1.1.num.int <10 (0xa)> + [15] #212.1.1.num.int <0 (0x0)> + [16] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #205.1.1.num.int <256 (0x100)> + [23] #204.1.1.num.int <128 (0x80)> + [24] #203.1.1.num.int <127 (0x7f)> + [25] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #201.1.1.num.int <4294967294 (0xfffffffe)> + [27] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #196.1.1.num.int <78187493530 (0x123456789a)> + [32] #195.1.1.num.int <305419896 (0x12345678)> + [33] #194.1.1.num.int <1193046 (0x123456)> + [34] #193.1.1.num.int <4660 (0x1234)> + [35] #192.1.1.num.int <18 (0x12)> + [36] #191.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #190.1.1.num.bool <0 (0x0)> + [39] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20e, type 8, 527[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #227.1.1.array + [2] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [3] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [4] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [6] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [7] #221.1.1.num.int <305419896 (0x12345678)> + [8] #220.1.1.num.int <78934 (0x13456)> + [9] #219.1.1.num.int <8364 (0x20ac)> + [10] #218.1.1.num.int <8364 (0x20ac)> + [11] #217.1.1.num.int <97 (0x61)> + [12] #216.1.1.num.int <92 (0x5c)> + [13] #215.1.1.num.int <39 (0x27)> + [14] #214.1.1.num.int <9 (0x9)> + [15] #213.1.1.num.int <10 (0xa)> + [16] #212.1.1.num.int <0 (0x0)> + [17] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #205.1.1.num.int <256 (0x100)> + [24] #204.1.1.num.int <128 (0x80)> + [25] #203.1.1.num.int <127 (0x7f)> + [26] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #201.1.1.num.int <4294967294 (0xfffffffe)> + [28] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #196.1.1.num.int <78187493530 (0x123456789a)> + [33] #195.1.1.num.int <305419896 (0x12345678)> + [34] #194.1.1.num.int <1193046 (0x123456)> + [35] #193.1.1.num.int <4660 (0x1234)> + [36] #192.1.1.num.int <18 (0x12)> + [37] #191.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #190.1.1.num.bool <0 (0x0)> + [40] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x210, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x212, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <20 (0x14)> + [1] #228.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x214, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <30 (0x1e)> + [1] #229.1.1.num.int <20 (0x14)> + [2] #228.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x216, type 8, 535[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.array + [1] #227.1.1.array + [2] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [3] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [4] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [6] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [7] #221.1.1.num.int <305419896 (0x12345678)> + [8] #220.1.1.num.int <78934 (0x13456)> + [9] #219.1.1.num.int <8364 (0x20ac)> + [10] #218.1.1.num.int <8364 (0x20ac)> + [11] #217.1.1.num.int <97 (0x61)> + [12] #216.1.1.num.int <92 (0x5c)> + [13] #215.1.1.num.int <39 (0x27)> + [14] #214.1.1.num.int <9 (0x9)> + [15] #213.1.1.num.int <10 (0xa)> + [16] #212.1.1.num.int <0 (0x0)> + [17] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #205.1.1.num.int <256 (0x100)> + [24] #204.1.1.num.int <128 (0x80)> + [25] #203.1.1.num.int <127 (0x7f)> + [26] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #201.1.1.num.int <4294967294 (0xfffffffe)> + [28] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #196.1.1.num.int <78187493530 (0x123456789a)> + [33] #195.1.1.num.int <305419896 (0x12345678)> + [34] #194.1.1.num.int <1193046 (0x123456)> + [35] #193.1.1.num.int <4660 (0x1234)> + [36] #192.1.1.num.int <18 (0x12)> + [37] #191.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #190.1.1.num.bool <0 (0x0)> + [40] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x218, type 8, 537[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #231.1.1.array + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21a, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21b, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <2 (0x2)> + [1] #232.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21c, type 8, 541[1] +GC: ++#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.3.num.prim <2 (0x2)> + [1] #233.1.1.num.int <2 (0x2)> + [2] #232.1.1.num.int <1 (0x1)> + [3] #9.1.3.num.prim <2 (0x2)> + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21e, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <3 (0x3)> + [1] #9.1.3.num.prim <2 (0x2)> + [2] #233.1.1.num.int <2 (0x2)> + [3] #232.1.1.num.int <1 (0x1)> + [4] #9.1.3.num.prim <2 (0x2)> + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21f, type 8, 544[1] +GC: --#9.1.3.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.array + [1] #233.1.1.num.int <2 (0x2)> + [2] #232.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x221, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <4 (0x4)> + [1] #235.1.1.array + [2] #233.1.1.num.int <2 (0x2)> + [3] #232.1.1.num.int <1 (0x1)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x222, type 8, 547[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.array + [1] #231.1.1.array + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x224, type 8, 549[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #237.1.1.array + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x226, type 8, 551[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.hash + [1] #237.1.1.array + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x228, type 8, 553[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #238.1.1.hash + [2] #237.1.1.array + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x22a, type 7, 555[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x22b, size 3, "a10"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x22e, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <100 (0x64)> + [1] #239.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x22b, size 3, "a10"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x230, type 7, 561[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x231, size 3, "a20"> + [1] #240.1.1.num.int <100 (0x64)> + [2] #239.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x22b, size 3, "a10"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x234, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <200 (0xc8)> + [1] #241.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x231, size 3, "a20"> + [2] #240.1.1.num.int <100 (0x64)> + [3] #239.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x22b, size 3, "a10"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x237, type 8, 568[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.hash + [1] #238.1.1.hash + [2] #237.1.1.array + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x239, type 8, 570[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #243.1.1.hash + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x23b, type 7, 572[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x23c, size 3, "c10"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x23f, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <10 (0xa)> + [1] #244.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x23c, size 3, "c10"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #243.1.1.hash + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x241, type 7, 578[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x242, size 3, "c20"> + [1] #245.1.1.num.int <10 (0xa)> + [2] #244.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x23c, size 3, "c10"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #243.1.1.hash + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x245, type 8, 582[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.hash + [1] #243.1.1.hash + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x247, type 8, 584[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #247.1.1.hash + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x249, type 7, 586[1] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x24a, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #247.1.1.hash + [3] #243.1.1.hash + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <1 (0x1)> + [1] #248.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x24a, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #247.1.1.hash + [4] #243.1.1.hash + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24c, type 7, 589[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24d, size 1, "b"> + [1] #249.1.1.num.int <1 (0x1)> + [2] #248.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24a, size 1, "a"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #247.1.1.hash + [5] #243.1.1.hash + [6] #238.1.1.hash + [7] #237.1.1.array + [8] #231.1.1.array + [9] #227.1.1.array + [10] #226.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x201, size 9> + [11] #225.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x1ff, size 1> + [12] #224.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [13] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x85, size 8, "€ XX X"> + [14] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x81, size 3, "€"> + [15] #221.1.1.num.int <305419896 (0x12345678)> + [16] #220.1.1.num.int <78934 (0x13456)> + [17] #219.1.1.num.int <8364 (0x20ac)> + [18] #218.1.1.num.int <8364 (0x20ac)> + [19] #217.1.1.num.int <97 (0x61)> + [20] #216.1.1.num.int <92 (0x5c)> + [21] #215.1.1.num.int <39 (0x27)> + [22] #214.1.1.num.int <9 (0x9)> + [23] #213.1.1.num.int <10 (0xa)> + [24] #212.1.1.num.int <0 (0x0)> + [25] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [26] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [28] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [29] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [30] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #205.1.1.num.int <256 (0x100)> + [32] #204.1.1.num.int <128 (0x80)> + [33] #203.1.1.num.int <127 (0x7f)> + [34] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [35] #201.1.1.num.int <4294967294 (0xfffffffe)> + [36] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [37] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [38] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [39] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [40] #196.1.1.num.int <78187493530 (0x123456789a)> + [41] #195.1.1.num.int <305419896 (0x12345678)> + [42] #194.1.1.num.int <1193046 (0x123456)> + [43] #193.1.1.num.int <4660 (0x1234)> + [44] #192.1.1.num.int <18 (0x12)> + [45] #191.1.1.num.int <0 (0x0)> + [46] #0.0.nil + [47] #190.1.1.num.bool <0 (0x0)> + [48] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24e, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <2 (0x2)> + [1] #250.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24d, size 1, "b"> + [2] #249.1.1.num.int <1 (0x1)> + [3] #248.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24a, size 1, "a"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #247.1.1.hash + [6] #243.1.1.hash + [7] #238.1.1.hash + [8] #237.1.1.array + [9] #231.1.1.array + [10] #227.1.1.array + [11] #226.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x201, size 9> + [12] #225.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x1ff, size 1> + [13] #224.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [14] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x85, size 8, "€ XX X"> + [15] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x81, size 3, "€"> + [16] #221.1.1.num.int <305419896 (0x12345678)> + [17] #220.1.1.num.int <78934 (0x13456)> + [18] #219.1.1.num.int <8364 (0x20ac)> + [19] #218.1.1.num.int <8364 (0x20ac)> + [20] #217.1.1.num.int <97 (0x61)> + [21] #216.1.1.num.int <92 (0x5c)> + [22] #215.1.1.num.int <39 (0x27)> + [23] #214.1.1.num.int <9 (0x9)> + [24] #213.1.1.num.int <10 (0xa)> + [25] #212.1.1.num.int <0 (0x0)> + [26] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [27] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [29] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [30] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [31] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #205.1.1.num.int <256 (0x100)> + [33] #204.1.1.num.int <128 (0x80)> + [34] #203.1.1.num.int <127 (0x7f)> + [35] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [36] #201.1.1.num.int <4294967294 (0xfffffffe)> + [37] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [38] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [39] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [40] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [41] #196.1.1.num.int <78187493530 (0x123456789a)> + [42] #195.1.1.num.int <305419896 (0x12345678)> + [43] #194.1.1.num.int <1193046 (0x123456)> + [44] #193.1.1.num.int <4660 (0x1234)> + [45] #192.1.1.num.int <18 (0x12)> + [46] #191.1.1.num.int <0 (0x0)> + [47] #0.0.nil + [48] #190.1.1.num.bool <0 (0x0)> + [49] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24f, type 7, 592[1] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x250, size 1, "c"> + [1] #251.1.1.num.int <2 (0x2)> + [2] #250.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24d, size 1, "b"> + [3] #249.1.1.num.int <1 (0x1)> + [4] #248.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24a, size 1, "a"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #247.1.1.hash + [7] #243.1.1.hash + [8] #238.1.1.hash + [9] #237.1.1.array + [10] #231.1.1.array + [11] #227.1.1.array + [12] #226.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x201, size 9> + [13] #225.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x1ff, size 1> + [14] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [15] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x85, size 8, "€ XX X"> + [16] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x81, size 3, "€"> + [17] #221.1.1.num.int <305419896 (0x12345678)> + [18] #220.1.1.num.int <78934 (0x13456)> + [19] #219.1.1.num.int <8364 (0x20ac)> + [20] #218.1.1.num.int <8364 (0x20ac)> + [21] #217.1.1.num.int <97 (0x61)> + [22] #216.1.1.num.int <92 (0x5c)> + [23] #215.1.1.num.int <39 (0x27)> + [24] #214.1.1.num.int <9 (0x9)> + [25] #213.1.1.num.int <10 (0xa)> + [26] #212.1.1.num.int <0 (0x0)> + [27] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [28] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [30] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [31] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [32] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [33] #205.1.1.num.int <256 (0x100)> + [34] #204.1.1.num.int <128 (0x80)> + [35] #203.1.1.num.int <127 (0x7f)> + [36] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [37] #201.1.1.num.int <4294967294 (0xfffffffe)> + [38] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [39] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [40] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [41] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [42] #196.1.1.num.int <78187493530 (0x123456789a)> + [43] #195.1.1.num.int <305419896 (0x12345678)> + [44] #194.1.1.num.int <1193046 (0x123456)> + [45] #193.1.1.num.int <4660 (0x1234)> + [46] #192.1.1.num.int <18 (0x12)> + [47] #191.1.1.num.int <0 (0x0)> + [48] #0.0.nil + [49] #190.1.1.num.bool <0 (0x0)> + [50] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x251, type 8, 594[1] +GC: ++#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.3.num.prim <4 (0x4)> + [1] #252.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x250, size 1, "c"> + [2] #251.1.1.num.int <2 (0x2)> + [3] #250.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24d, size 1, "b"> + [4] #249.1.1.num.int <1 (0x1)> + [5] #248.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24a, size 1, "a"> + [6] #13.1.3.num.prim <4 (0x4)> + [7] #247.1.1.hash + [8] #243.1.1.hash + [9] #238.1.1.hash + [10] #237.1.1.array + [11] #231.1.1.array + [12] #227.1.1.array + [13] #226.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x201, size 9> + [14] #225.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x1ff, size 1> + [15] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x85, size 8, "€ XX X"> + [17] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x81, size 3, "€"> + [18] #221.1.1.num.int <305419896 (0x12345678)> + [19] #220.1.1.num.int <78934 (0x13456)> + [20] #219.1.1.num.int <8364 (0x20ac)> + [21] #218.1.1.num.int <8364 (0x20ac)> + [22] #217.1.1.num.int <97 (0x61)> + [23] #216.1.1.num.int <92 (0x5c)> + [24] #215.1.1.num.int <39 (0x27)> + [25] #214.1.1.num.int <9 (0x9)> + [26] #213.1.1.num.int <10 (0xa)> + [27] #212.1.1.num.int <0 (0x0)> + [28] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #205.1.1.num.int <256 (0x100)> + [35] #204.1.1.num.int <128 (0x80)> + [36] #203.1.1.num.int <127 (0x7f)> + [37] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #201.1.1.num.int <4294967294 (0xfffffffe)> + [39] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #196.1.1.num.int <78187493530 (0x123456789a)> + [44] #195.1.1.num.int <305419896 (0x12345678)> + [45] #194.1.1.num.int <1193046 (0x123456)> + [46] #193.1.1.num.int <4660 (0x1234)> + [47] #192.1.1.num.int <18 (0x12)> + [48] #191.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #190.1.1.num.bool <0 (0x0)> + [51] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x253, type 7, 596[1] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + [1] #13.1.3.num.prim <4 (0x4)> + [2] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [3] #251.1.1.num.int <2 (0x2)> + [4] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [5] #249.1.1.num.int <1 (0x1)> + [6] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [7] #13.1.3.num.prim <4 (0x4)> + [8] #247.1.1.hash + [9] #243.1.1.hash + [10] #238.1.1.hash + [11] #237.1.1.array + [12] #231.1.1.array + [13] #227.1.1.array + [14] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [15] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [16] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [17] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [18] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [19] #221.1.1.num.int <305419896 (0x12345678)> + [20] #220.1.1.num.int <78934 (0x13456)> + [21] #219.1.1.num.int <8364 (0x20ac)> + [22] #218.1.1.num.int <8364 (0x20ac)> + [23] #217.1.1.num.int <97 (0x61)> + [24] #216.1.1.num.int <92 (0x5c)> + [25] #215.1.1.num.int <39 (0x27)> + [26] #214.1.1.num.int <9 (0x9)> + [27] #213.1.1.num.int <10 (0xa)> + [28] #212.1.1.num.int <0 (0x0)> + [29] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [30] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [32] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [33] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [34] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [35] #205.1.1.num.int <256 (0x100)> + [36] #204.1.1.num.int <128 (0x80)> + [37] #203.1.1.num.int <127 (0x7f)> + [38] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [39] #201.1.1.num.int <4294967294 (0xfffffffe)> + [40] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [41] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [42] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [43] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [44] #196.1.1.num.int <78187493530 (0x123456789a)> + [45] #195.1.1.num.int <305419896 (0x12345678)> + [46] #194.1.1.num.int <1193046 (0x123456)> + [47] #193.1.1.num.int <4660 (0x1234)> + [48] #192.1.1.num.int <18 (0x12)> + [49] #191.1.1.num.int <0 (0x0)> + [50] #0.0.nil + [51] #190.1.1.num.bool <0 (0x0)> + [52] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x255, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <4 (0x4)> + [1] #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + [2] #13.1.3.num.prim <4 (0x4)> + [3] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [4] #251.1.1.num.int <2 (0x2)> + [5] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [6] #249.1.1.num.int <1 (0x1)> + [7] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [8] #13.1.3.num.prim <4 (0x4)> + [9] #247.1.1.hash + [10] #243.1.1.hash + [11] #238.1.1.hash + [12] #237.1.1.array + [13] #231.1.1.array + [14] #227.1.1.array + [15] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [16] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [17] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [18] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [19] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [20] #221.1.1.num.int <305419896 (0x12345678)> + [21] #220.1.1.num.int <78934 (0x13456)> + [22] #219.1.1.num.int <8364 (0x20ac)> + [23] #218.1.1.num.int <8364 (0x20ac)> + [24] #217.1.1.num.int <97 (0x61)> + [25] #216.1.1.num.int <92 (0x5c)> + [26] #215.1.1.num.int <39 (0x27)> + [27] #214.1.1.num.int <9 (0x9)> + [28] #213.1.1.num.int <10 (0xa)> + [29] #212.1.1.num.int <0 (0x0)> + [30] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [31] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [33] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [34] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [35] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [36] #205.1.1.num.int <256 (0x100)> + [37] #204.1.1.num.int <128 (0x80)> + [38] #203.1.1.num.int <127 (0x7f)> + [39] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [40] #201.1.1.num.int <4294967294 (0xfffffffe)> + [41] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [42] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [43] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [44] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [45] #196.1.1.num.int <78187493530 (0x123456789a)> + [46] #195.1.1.num.int <305419896 (0x12345678)> + [47] #194.1.1.num.int <1193046 (0x123456)> + [48] #193.1.1.num.int <4660 (0x1234)> + [49] #192.1.1.num.int <18 (0x12)> + [50] #191.1.1.num.int <0 (0x0)> + [51] #0.0.nil + [52] #190.1.1.num.bool <0 (0x0)> + [53] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x256, type 8, 599[1] +GC: --#13.1.3.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.hash + [1] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [2] #251.1.1.num.int <2 (0x2)> + [3] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [4] #249.1.1.num.int <1 (0x1)> + [5] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #247.1.1.hash + [8] #243.1.1.hash + [9] #238.1.1.hash + [10] #237.1.1.array + [11] #231.1.1.array + [12] #227.1.1.array + [13] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [14] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [15] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [17] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [18] #221.1.1.num.int <305419896 (0x12345678)> + [19] #220.1.1.num.int <78934 (0x13456)> + [20] #219.1.1.num.int <8364 (0x20ac)> + [21] #218.1.1.num.int <8364 (0x20ac)> + [22] #217.1.1.num.int <97 (0x61)> + [23] #216.1.1.num.int <92 (0x5c)> + [24] #215.1.1.num.int <39 (0x27)> + [25] #214.1.1.num.int <9 (0x9)> + [26] #213.1.1.num.int <10 (0xa)> + [27] #212.1.1.num.int <0 (0x0)> + [28] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #205.1.1.num.int <256 (0x100)> + [35] #204.1.1.num.int <128 (0x80)> + [36] #203.1.1.num.int <127 (0x7f)> + [37] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #201.1.1.num.int <4294967294 (0xfffffffe)> + [39] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #196.1.1.num.int <78187493530 (0x123456789a)> + [44] #195.1.1.num.int <305419896 (0x12345678)> + [45] #194.1.1.num.int <1193046 (0x123456)> + [46] #193.1.1.num.int <4660 (0x1234)> + [47] #192.1.1.num.int <18 (0x12)> + [48] #191.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #190.1.1.num.bool <0 (0x0)> + [51] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x258, type 8, 601[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.hash + [1] #247.1.1.hash + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> diff --git a/tests/0001_prim_def_scalar/basic.log.ref b/tests/0001_prim_def_scalar/basic.log.ref new file mode 100644 index 0000000..f5f6d53 --- /dev/null +++ b/tests/0001_prim_def_scalar/basic.log.ref @@ -0,0 +1,26 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0001_prim_def_scalar/code.log.ref b/tests/0001_prim_def_scalar/code.log.ref new file mode 100644 index 0000000..90bdad9 --- /dev/null +++ b/tests/0001_prim_def_scalar/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e word 38 64 65 66 def + 4 4 0x00012 word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/code1.log.ref b/tests/0001_prim_def_scalar/code1.log.ref new file mode 100644 index 0000000..90bdad9 --- /dev/null +++ b/tests/0001_prim_def_scalar/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e word 38 64 65 66 def + 4 4 0x00012 word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/code2.log.ref b/tests/0001_prim_def_scalar/code2.log.ref new file mode 100644 index 0000000..79fba5f --- /dev/null +++ b/tests/0001_prim_def_scalar/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e prim 63 def + 4 4 0x0000f word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/main.gs b/tests/0001_prim_def_scalar/main.gs new file mode 100644 index 0000000..613664f --- /dev/null +++ b/tests/0001_prim_def_scalar/main.gs @@ -0,0 +1,4 @@ +# variable definition with scalar value + +/foo 100 def +foo diff --git a/tests/0001_prim_def_scalar/mem.log.ref b/tests/0001_prim_def_scalar/mem.log.ref new file mode 100644 index 0000000..4d2dd1f --- /dev/null +++ b/tests/0001_prim_def_scalar/mem.log.ref @@ -0,0 +1,755 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.2.num.int <100 (0x64)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 81 64 38 64 uQ..Bz.`9foo.d8d + 65 66 38 66 6f 6f ef8foo + #187.1.1.array + [ 0] #190.1.2.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x16 (0x16) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.2.num.int <100 (0x64)> diff --git a/tests/0001_prim_def_scalar/screen.log.ref b/tests/0001_prim_def_scalar/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0001_prim_def_scalar/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0001_prim_def_scalar/trace.log.ref b/tests/0001_prim_def_scalar/trace.log.ref new file mode 100644 index 0000000..9d3fd8a --- /dev/null +++ b/tests/0001_prim_def_scalar/trace.log.ref @@ -0,0 +1,31 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 8, 19[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <100 (0x64)> diff --git a/tests/0002_prim_def_array/basic.log.ref b/tests/0002_prim_def_array/basic.log.ref new file mode 100644 index 0000000..429fe83 --- /dev/null +++ b/tests/0002_prim_def_array/basic.log.ref @@ -0,0 +1,73 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.num.prim <2 (0x2)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array diff --git a/tests/0002_prim_def_array/code.log.ref b/tests/0002_prim_def_array/code.log.ref new file mode 100644 index 0000000..16bcfb9 --- /dev/null +++ b/tests/0002_prim_def_array/code.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e int 81 0a 10 + 4 0x00010 int 81 14 20 + 5 0x00012 int 81 1e 30 + 6 0x00014 int 81 28 40 + 7 0x00016 int 81 32 50 + 8 0x00018 word 18 5d ] + 9 0x0001a word 38 64 65 66 def + 4 10 0x0001e word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/code1.log.ref b/tests/0002_prim_def_array/code1.log.ref new file mode 100644 index 0000000..16bcfb9 --- /dev/null +++ b/tests/0002_prim_def_array/code1.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e int 81 0a 10 + 4 0x00010 int 81 14 20 + 5 0x00012 int 81 1e 30 + 6 0x00014 int 81 28 40 + 7 0x00016 int 81 32 50 + 8 0x00018 word 18 5d ] + 9 0x0001a word 38 64 65 66 def + 4 10 0x0001e word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/code2.log.ref b/tests/0002_prim_def_array/code2.log.ref new file mode 100644 index 0000000..075cb2a --- /dev/null +++ b/tests/0002_prim_def_array/code2.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 23 [ + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 int 81 1e 30 + 6 0x00013 int 81 28 40 + 7 0x00015 int 81 32 50 + 8 0x00017 prim 33 ] + 9 0x00018 prim 63 def + 4 10 0x00019 word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/main.gs b/tests/0002_prim_def_array/main.gs new file mode 100644 index 0000000..7d291fb --- /dev/null +++ b/tests/0002_prim_def_array/main.gs @@ -0,0 +1,4 @@ +# variable definition with array + +/foo [ 10 20 30 40 50 ] def +foo diff --git a/tests/0002_prim_def_array/mem.log.ref b/tests/0002_prim_def_array/mem.log.ref new file mode 100644 index 0000000..16022f1 --- /dev/null +++ b/tests/0002_prim_def_array/mem.log.ref @@ -0,0 +1,767 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 36] + 8: 187.01, 0x001d6a98[ 72] + 9: 188.01, 0x001d6ae8[ 56] + 10: 195.01, 0x001d6b28[ 28] + 11: 0.00, 0x001d6b4c[14849204] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #195.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 5b 81 0a uQ..Bz.`9foo.[.. + 81 14 81 1e 81 28 81 32 18 5d 38 64 65 66 38 66 .....(.2.]8def8f + 6f 6f oo + #187.1.1.array + [ 0] #195.1.2.array + #188.1.1.ctx.func + type 17, ip 0x22 (0x22) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.1.num.int <40 (0x28)> + #194.1.1.num.int <50 (0x32)> + #195.1.2.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.1.num.int <40 (0x28)> + [ 4] #194.1.1.num.int <50 (0x32)> diff --git a/tests/0002_prim_def_array/screen.log.ref b/tests/0002_prim_def_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0002_prim_def_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0002_prim_def_array/trace.log.ref b/tests/0002_prim_def_array/trace.log.ref new file mode 100644 index 0000000..744e590 --- /dev/null +++ b/tests/0002_prim_def_array/trace.log.ref @@ -0,0 +1,84 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <50 (0x32)> + [1] #193.1.1.num.int <40 (0x28)> + [2] #192.1.1.num.int <30 (0x1e)> + [3] #191.1.1.num.int <20 (0x14)> + [4] #190.1.1.num.int <10 (0xa)> + [5] #9.1.2.num.prim <2 (0x2)> + [6] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#195.1.1.array +GC: --#195.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#195.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.array diff --git a/tests/0003_prim_def_hash/basic.log.ref b/tests/0003_prim_def_hash/basic.log.ref new file mode 100644 index 0000000..966b6ba --- /dev/null +++ b/tests/0003_prim_def_hash/basic.log.ref @@ -0,0 +1,87 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bar_01"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bar_01"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_02"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_01"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_02"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_01"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_03"> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_02"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_01"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_03"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_02"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_01"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash diff --git a/tests/0003_prim_def_hash/code.log.ref b/tests/0003_prim_def_hash/code.log.ref new file mode 100644 index 0000000..d1b9c32 --- /dev/null +++ b/tests/0003_prim_def_hash/code.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00015 int 81 64 100 + 5 0x00017 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001e int 91 c8 00 200 + 7 0x00021 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00028 int 91 2c 01 300 + 9 0x0002b word 18 29 ) + 10 0x0002d word 38 64 65 66 def + 4 11 0x00031 word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/code1.log.ref b/tests/0003_prim_def_hash/code1.log.ref new file mode 100644 index 0000000..d1b9c32 --- /dev/null +++ b/tests/0003_prim_def_hash/code1.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00015 int 81 64 100 + 5 0x00017 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001e int 91 c8 00 200 + 7 0x00021 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00028 int 91 2c 01 300 + 9 0x0002b word 18 29 ) + 10 0x0002d word 38 64 65 66 def + 4 11 0x00031 word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/code2.log.ref b/tests/0003_prim_def_hash/code2.log.ref new file mode 100644 index 0000000..a468b7c --- /dev/null +++ b/tests/0003_prim_def_hash/code2.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00014 int 81 64 100 + 5 0x00016 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001d int 91 c8 00 200 + 7 0x00020 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00027 int 91 2c 01 300 + 9 0x0002a prim 53 ) + 10 0x0002b prim 63 def + 4 11 0x0002c word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/main.gs b/tests/0003_prim_def_hash/main.gs new file mode 100644 index 0000000..b0949ea --- /dev/null +++ b/tests/0003_prim_def_hash/main.gs @@ -0,0 +1,4 @@ +# variable definition with hash + +/foo ( "bar_01" 100 "bar_02" 200 "bar_03" 300 ) def +foo diff --git a/tests/0003_prim_def_hash/mem.log.ref b/tests/0003_prim_def_hash/mem.log.ref new file mode 100644 index 0000000..ea25692 --- /dev/null +++ b/tests/0003_prim_def_hash/mem.log.ref @@ -0,0 +1,770 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 196.01, 0x001d6b3c[ 36] + 11: 0.00, 0x001d6b68[14849176] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 67 62 uQ..Bz.`9foo.(gb + 61 72 5f 30 31 81 64 67 62 61 72 5f 30 32 91 c8 ar_01.dgbar_02.. + 00 67 62 61 72 5f 30 33 91 2c 01 18 29 38 64 65 .gbar_03.,..)8de + 66 38 66 6f 6f f8foo + #187.1.1.array + [ 0] #196.1.2.hash + #188.1.1.ctx.func + type 17, ip 0x35 (0x35) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + 62 61 72 5f 30 31 bar_01 + #191.1.1.num.int <100 (0x64)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + 62 61 72 5f 30 32 bar_02 + #193.1.1.num.int <200 (0xc8)> + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + 62 61 72 5f 30 33 bar_03 + #195.1.1.num.int <300 (0x12c)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> => #191.1.1.num.int <100 (0x64)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> => #193.1.1.num.int <200 (0xc8)> + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> => #195.1.1.num.int <300 (0x12c)> diff --git a/tests/0003_prim_def_hash/screen.log.ref b/tests/0003_prim_def_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0003_prim_def_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0003_prim_def_hash/trace.log.ref b/tests/0003_prim_def_hash/trace.log.ref new file mode 100644 index 0000000..5a87103 --- /dev/null +++ b/tests/0003_prim_def_hash/trace.log.ref @@ -0,0 +1,99 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 6, "bar_01"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x15, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <100 (0x64)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 6, "bar_01"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x17, type 7, 24[6] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x18, size 6, "bar_02"> + [1] #191.1.1.num.int <100 (0x64)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 6, "bar_01"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x18, size 6, "bar_02"> + [2] #191.1.1.num.int <100 (0x64)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 6, "bar_01"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x21, type 7, 34[6] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + [3] #191.1.1.num.int <100 (0x64)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x28, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <300 (0x12c)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + [4] #191.1.1.num.int <100 (0x64)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x2b, type 8, 44[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x2d, type 8, 46[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x31, type 8, 50[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash diff --git a/tests/0004_prim_def_code/basic.log.ref b/tests/0004_prim_def_code/basic.log.ref new file mode 100644 index 0000000..bc4db5b --- /dev/null +++ b/tests/0004_prim_def_code/basic.log.ref @@ -0,0 +1,40 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0004_prim_def_code/code.log.ref b/tests/0004_prim_def_code/code.log.ref new file mode 100644 index 0000000..8a65e99 --- /dev/null +++ b/tests/0004_prim_def_code/code.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 word 38 64 65 66 def + 4 6 0x00014 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/code1.log.ref b/tests/0004_prim_def_code/code1.log.ref new file mode 100644 index 0000000..8a65e99 --- /dev/null +++ b/tests/0004_prim_def_code/code1.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 word 38 64 65 66 def + 4 6 0x00014 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/code2.log.ref b/tests/0004_prim_def_code/code2.log.ref new file mode 100644 index 0000000..e860886 --- /dev/null +++ b/tests/0004_prim_def_code/code2.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 prim 63 def + 4 6 0x00011 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/main.gs b/tests/0004_prim_def_code/main.gs new file mode 100644 index 0000000..c25776e --- /dev/null +++ b/tests/0004_prim_def_code/main.gs @@ -0,0 +1,4 @@ +# variable definition with code + +/foo { 100 } def +foo diff --git a/tests/0004_prim_def_code/mem.log.ref b/tests/0004_prim_def_code/mem.log.ref new file mode 100644 index 0000000..e869ba3 --- /dev/null +++ b/tests/0004_prim_def_code/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[ 56] + 11: 193.01, 0x001d6b5c[ 72] + 12: 0.00, 0x001d6bac[14849108] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 36 81 64 13 uQ..Bz.`9foo6.d. + 38 64 65 66 38 66 6f 6f 8def8foo + #187.1.1.array + [ 0] #192.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x18 (0x18) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + 81 64 13 .d. + #192.1.1.num.int <100 (0x64)> + #193.1.1.array diff --git a/tests/0004_prim_def_code/screen.log.ref b/tests/0004_prim_def_code/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0004_prim_def_code/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0004_prim_def_code/trace.log.ref b/tests/0004_prim_def_code/trace.log.ref new file mode 100644 index 0000000..9411c9c --- /dev/null +++ b/tests/0004_prim_def_code/trace.log.ref @@ -0,0 +1,47 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 13[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 8, 17[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x14, type 8, 21[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 100 (0x64) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <100 (0x64)> +IP: #190:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <100 (0x64)> diff --git a/tests/0005_if_ifelse/basic.log.ref b/tests/0005_if_ifelse/basic.log.ref new file mode 100644 index 0000000..a8cbc71 --- /dev/null +++ b/tests/0005_if_ifelse/basic.log.ref @@ -0,0 +1,674 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, ""> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [3] #xxxx.1.1.num.int <10091 (0x276b)> + [4] #xxxx.1.1.num.int <10081 (0x2761)> + [5] #xxxx.1.1.num.int <10071 (0x2757)> + [6] #xxxx.1.1.num.int <10062 (0x274e)> + [7] #xxxx.1.1.num.int <10052 (0x2744)> + [8] #xxxx.1.1.num.int <10041 (0x2739)> + [9] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.int <100101 (0x18705)> + [3] #xxxx.1.1.num.int <10091 (0x276b)> + [4] #xxxx.1.1.num.int <10081 (0x2761)> + [5] #xxxx.1.1.num.int <10071 (0x2757)> + [6] #xxxx.1.1.num.int <10062 (0x274e)> + [7] #xxxx.1.1.num.int <10052 (0x2744)> + [8] #xxxx.1.1.num.int <10041 (0x2739)> + [9] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> + [3] #xxxx.1.1.num.int <100101 (0x18705)> + [4] #xxxx.1.1.num.int <10091 (0x276b)> + [5] #xxxx.1.1.num.int <10081 (0x2761)> + [6] #xxxx.1.1.num.int <10071 (0x2757)> + [7] #xxxx.1.1.num.int <10062 (0x274e)> + [8] #xxxx.1.1.num.int <10052 (0x2744)> + [9] #xxxx.1.1.num.int <10041 (0x2739)> + [10] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100111 (0x1870f)> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100111 (0x1870f)> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> diff --git a/tests/0005_if_ifelse/code.log.ref b/tests/0005_if_ifelse/code.log.ref new file mode 100644 index 0000000..8587cc5 --- /dev/null +++ b/tests/0005_if_ifelse/code.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e word 28 69 66 if + 2 6 0x00011 bool 02 false + 7 0x00012 code 46 { + 8 0x00013 int 91 ea 03 1002 + 9 0x00016 prim 13 } + 10 0x00017 word 28 69 66 if + 3 11 0x0001a nil 00 nil + 12 0x0001b code 46 { + 13 0x0001c int 91 eb 03 1003 + 14 0x0001f prim 13 } + 15 0x00020 word 28 69 66 if + 4 16 0x00023 bool 12 true + 17 0x00024 code 46 { + 18 0x00025 int 91 39 27 10041 + 19 0x00028 prim 13 } + 20 0x00029 code 46 { + 21 0x0002a int 91 3a 27 10042 + 22 0x0002d prim 13 } + 23 0x0002e word 68 69 66 65 6c 73 65 ifelse + 5 24 0x00035 bool 02 false + 25 0x00036 code 46 { + 26 0x00037 int 91 43 27 10051 + 27 0x0003a prim 13 } + 28 0x0003b code 46 { + 29 0x0003c int 91 44 27 10052 + 30 0x0003f prim 13 } + 31 0x00040 word 68 69 66 65 6c 73 65 ifelse + 6 32 0x00047 nil 00 nil + 33 0x00048 code 46 { + 34 0x00049 int 91 4d 27 10061 + 35 0x0004c prim 13 } + 36 0x0004d code 46 { + 37 0x0004e int 91 4e 27 10062 + 38 0x00051 prim 13 } + 39 0x00052 word 68 69 66 65 6c 73 65 ifelse + 7 40 0x00059 str 07 "" + 41 0x0005a code 46 { + 42 0x0005b int 91 57 27 10071 + 43 0x0005e prim 13 } + 44 0x0005f code 46 { + 45 0x00060 int 91 58 27 10072 + 46 0x00063 prim 13 } + 47 0x00064 word 68 69 66 65 6c 73 65 ifelse + 8 48 0x0006b word 18 5b [ + 49 0x0006d int 11 1 + 50 0x0006e word 18 5d ] + 51 0x00070 code 46 { + 52 0x00071 int 91 61 27 10081 + 53 0x00074 prim 13 } + 54 0x00075 code 46 { + 55 0x00076 int 91 62 27 10082 + 56 0x00079 prim 13 } + 57 0x0007a word 68 69 66 65 6c 73 65 ifelse + 9 58 0x00081 word 18 28 ( + 59 0x00083 str 17 61 "a" + 60 0x00085 int 21 2 + 61 0x00086 word 18 29 ) + 62 0x00088 code 46 { + 63 0x00089 int 91 6b 27 10091 + 64 0x0008c prim 13 } + 65 0x0008d code 46 { + 66 0x0008e int 91 6c 27 10092 + 67 0x00091 prim 13 } + 68 0x00092 word 68 69 66 65 6c 73 65 ifelse + 10 69 0x00099 code 26 { + 70 0x0009a int 11 1 + 71 0x0009b prim 13 } + 72 0x0009c code 56 { + 73 0x0009d int a1 05 87 01 100101 + 74 0x000a1 prim 13 } + 75 0x000a2 code 56 { + 76 0x000a3 int a1 06 87 01 100102 + 77 0x000a7 prim 13 } + 78 0x000a8 word 68 69 66 65 6c 73 65 ifelse + 11 79 0x000af ref 39 66 6f 6f /foo + 80 0x000b3 code 56 { + 81 0x000b4 int a1 0f 87 01 100111 + 82 0x000b8 prim 13 } + 83 0x000b9 code 56 { + 84 0x000ba int a1 10 87 01 100112 + 85 0x000be prim 13 } + 86 0x000bf word 68 69 66 65 6c 73 65 ifelse diff --git a/tests/0005_if_ifelse/code1.log.ref b/tests/0005_if_ifelse/code1.log.ref new file mode 100644 index 0000000..548fb12 --- /dev/null +++ b/tests/0005_if_ifelse/code1.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e word 28 69 66 if + 2 6 0x00011 bool 02 false + 7 0x00012 code 46 { + 8 0x00013 int 91 ea 03 1002 + 9 0x00016 prim 13 } + 10 0x00017 xref 84 09 if + 3 11 0x00019 nil 00 nil + 12 0x0001a code 46 { + 13 0x0001b int 91 eb 03 1003 + 14 0x0001e prim 13 } + 15 0x0001f xref 84 11 if + 4 16 0x00021 bool 12 true + 17 0x00022 code 46 { + 18 0x00023 int 91 39 27 10041 + 19 0x00026 prim 13 } + 20 0x00027 code 46 { + 21 0x00028 int 91 3a 27 10042 + 22 0x0002b prim 13 } + 23 0x0002c word 68 69 66 65 6c 73 65 ifelse + 5 24 0x00033 bool 02 false + 25 0x00034 code 46 { + 26 0x00035 int 91 43 27 10051 + 27 0x00038 prim 13 } + 28 0x00039 code 46 { + 29 0x0003a int 91 44 27 10052 + 30 0x0003d prim 13 } + 31 0x0003e xref 84 12 ifelse + 6 32 0x00040 nil 00 nil + 33 0x00041 code 46 { + 34 0x00042 int 91 4d 27 10061 + 35 0x00045 prim 13 } + 36 0x00046 code 46 { + 37 0x00047 int 91 4e 27 10062 + 38 0x0004a prim 13 } + 39 0x0004b xref 84 1f ifelse + 7 40 0x0004d str 07 "" + 41 0x0004e code 46 { + 42 0x0004f int 91 57 27 10071 + 43 0x00052 prim 13 } + 44 0x00053 code 46 { + 45 0x00054 int 91 58 27 10072 + 46 0x00057 prim 13 } + 47 0x00058 xref 84 2c ifelse + 8 48 0x0005a word 18 5b [ + 49 0x0005c int 11 1 + 50 0x0005d word 18 5d ] + 51 0x0005f code 46 { + 52 0x00060 int 91 61 27 10081 + 53 0x00063 prim 13 } + 54 0x00064 code 46 { + 55 0x00065 int 91 62 27 10082 + 56 0x00068 prim 13 } + 57 0x00069 xref 84 3d ifelse + 9 58 0x0006b word 18 28 ( + 59 0x0006d str 17 61 "a" + 60 0x0006f int 21 2 + 61 0x00070 word 18 29 ) + 62 0x00072 code 46 { + 63 0x00073 int 91 6b 27 10091 + 64 0x00076 prim 13 } + 65 0x00077 code 46 { + 66 0x00078 int 91 6c 27 10092 + 67 0x0007b prim 13 } + 68 0x0007c xref 84 50 ifelse + 10 69 0x0007e code 26 { + 70 0x0007f int 11 1 + 71 0x00080 prim 13 } + 72 0x00081 code 56 { + 73 0x00082 int a1 05 87 01 100101 + 74 0x00086 prim 13 } + 75 0x00087 code 56 { + 76 0x00088 int a1 06 87 01 100102 + 77 0x0008c prim 13 } + 78 0x0008d xref 84 61 ifelse + 11 79 0x0008f ref 39 66 6f 6f /foo + 80 0x00093 code 56 { + 81 0x00094 int a1 0f 87 01 100111 + 82 0x00098 prim 13 } + 83 0x00099 code 56 { + 84 0x0009a int a1 10 87 01 100112 + 85 0x0009e prim 13 } + 86 0x0009f xref 84 73 ifelse diff --git a/tests/0005_if_ifelse/code2.log.ref b/tests/0005_if_ifelse/code2.log.ref new file mode 100644 index 0000000..22ff164 --- /dev/null +++ b/tests/0005_if_ifelse/code2.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e prim 83 09 if + 2 6 0x00010 bool 02 false + 7 0x00011 code 46 { + 8 0x00012 int 91 ea 03 1002 + 9 0x00015 prim 13 } + 10 0x00016 prim 83 09 if + 3 11 0x00018 nil 00 nil + 12 0x00019 code 46 { + 13 0x0001a int 91 eb 03 1003 + 14 0x0001d prim 13 } + 15 0x0001e prim 83 09 if + 4 16 0x00020 bool 12 true + 17 0x00021 code 46 { + 18 0x00022 int 91 39 27 10041 + 19 0x00025 prim 13 } + 20 0x00026 code 46 { + 21 0x00027 int 91 3a 27 10042 + 22 0x0002a prim 13 } + 23 0x0002b prim 83 0a ifelse + 5 24 0x0002d bool 02 false + 25 0x0002e code 46 { + 26 0x0002f int 91 43 27 10051 + 27 0x00032 prim 13 } + 28 0x00033 code 46 { + 29 0x00034 int 91 44 27 10052 + 30 0x00037 prim 13 } + 31 0x00038 prim 83 0a ifelse + 6 32 0x0003a nil 00 nil + 33 0x0003b code 46 { + 34 0x0003c int 91 4d 27 10061 + 35 0x0003f prim 13 } + 36 0x00040 code 46 { + 37 0x00041 int 91 4e 27 10062 + 38 0x00044 prim 13 } + 39 0x00045 prim 83 0a ifelse + 7 40 0x00047 str 07 "" + 41 0x00048 code 46 { + 42 0x00049 int 91 57 27 10071 + 43 0x0004c prim 13 } + 44 0x0004d code 46 { + 45 0x0004e int 91 58 27 10072 + 46 0x00051 prim 13 } + 47 0x00052 prim 83 0a ifelse + 8 48 0x00054 prim 23 [ + 49 0x00055 int 11 1 + 50 0x00056 prim 33 ] + 51 0x00057 code 46 { + 52 0x00058 int 91 61 27 10081 + 53 0x0005b prim 13 } + 54 0x0005c code 46 { + 55 0x0005d int 91 62 27 10082 + 56 0x00060 prim 13 } + 57 0x00061 prim 83 0a ifelse + 9 58 0x00063 prim 43 ( + 59 0x00064 str 17 61 "a" + 60 0x00066 int 21 2 + 61 0x00067 prim 53 ) + 62 0x00068 code 46 { + 63 0x00069 int 91 6b 27 10091 + 64 0x0006c prim 13 } + 65 0x0006d code 46 { + 66 0x0006e int 91 6c 27 10092 + 67 0x00071 prim 13 } + 68 0x00072 prim 83 0a ifelse + 10 69 0x00074 code 26 { + 70 0x00075 int 11 1 + 71 0x00076 prim 13 } + 72 0x00077 code 56 { + 73 0x00078 int a1 05 87 01 100101 + 74 0x0007c prim 13 } + 75 0x0007d code 56 { + 76 0x0007e int a1 06 87 01 100102 + 77 0x00082 prim 13 } + 78 0x00083 prim 83 0a ifelse + 11 79 0x00085 ref 39 66 6f 6f /foo + 80 0x00089 code 56 { + 81 0x0008a int a1 0f 87 01 100111 + 82 0x0008e prim 13 } + 83 0x0008f code 56 { + 84 0x00090 int a1 10 87 01 100112 + 85 0x00094 prim 13 } + 86 0x00095 prim 83 0a ifelse diff --git a/tests/0005_if_ifelse/main.gs b/tests/0005_if_ifelse/main.gs new file mode 100644 index 0000000..4871e83 --- /dev/null +++ b/tests/0005_if_ifelse/main.gs @@ -0,0 +1,11 @@ +true { 1001 } if +false { 1002 } if +nil { 1003 } if +true { 10041 } { 10042 } ifelse +false { 10051 } { 10052 } ifelse +nil { 10061 } { 10062 } ifelse +"" { 10071 } { 10072 } ifelse +[ 1 ] { 10081 } { 10082 } ifelse +( "a" 2 ) { 10091 } { 10092 } ifelse +{ 1 } { 100101 } { 100102 } ifelse +/foo { 100111 } { 100112 } ifelse diff --git a/tests/0005_if_ifelse/mem.log.ref b/tests/0005_if_ifelse/mem.log.ref new file mode 100644 index 0000000..81830c9 --- /dev/null +++ b/tests/0005_if_ifelse/mem.log.ref @@ -0,0 +1,782 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 187.01, 0x001d6b3c[ 72] + 9: 188.01, 0x001d6b8c[ 56] + 10: 0.00, 0x001d6bcc[ 56] + 11: 192.01, 0x001d6c0c[ 72] + 12: 0.00, 0x001d6c5c[14848932] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 46 91 e9 03 13 28 69 uQ..Bz.`.F....(i + 66 02 46 91 ea 03 13 28 69 66 00 46 91 eb 03 13 f.F....(if.F.... + 28 69 66 12 46 91 39 27 13 46 91 3a 27 13 68 69 (if.F.9'.F.:'.hi + 66 65 6c 73 65 02 46 91 43 27 13 46 91 44 27 13 felse.F.C'.F.D'. + 68 69 66 65 6c 73 65 00 46 91 4d 27 13 46 91 4e hifelse.F.M'.F.N + 27 13 68 69 66 65 6c 73 65 07 46 91 57 27 13 46 '.hifelse.F.W'.F + 91 58 27 13 68 69 66 65 6c 73 65 18 5b 11 18 5d .X'.hifelse.[..] + 46 91 61 27 13 46 91 62 27 13 68 69 66 65 6c 73 F.a'.F.b'.hifels + 65 18 28 17 61 21 18 29 46 91 6b 27 13 46 91 6c e.(.a!.)F.k'.F.l + 27 13 68 69 66 65 6c 73 65 26 11 13 56 a1 05 87 '.hifelse&..V... + 01 13 56 a1 06 87 01 13 68 69 66 65 6c 73 65 39 ..V.....hifelse9 + 66 6f 6f 56 a1 0f 87 01 13 56 a1 10 87 01 13 68 fooV.....V.....h + 69 66 65 6c 73 65 ifelse + #187.1.1.array + [ 0] #193.1.1.num.int <1001 (0x3e9)> + [ 1] #201.1.1.num.int <10041 (0x2739)> + [ 2] #206.1.1.num.int <10052 (0x2744)> + [ 3] #210.1.1.num.int <10062 (0x274e)> + [ 4] #215.1.1.num.int <10071 (0x2757)> + [ 5] #221.1.1.num.int <10081 (0x2761)> + [ 6] #228.1.1.num.int <10091 (0x276b)> + [ 7] #233.1.1.num.int <100101 (0x18705)> + [ 8] #238.1.1.num.int <100111 (0x1870f)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #192.1.1.array + #193.1.1.num.int <1001 (0x3e9)> + #201.1.1.num.int <10041 (0x2739)> + #206.1.1.num.int <10052 (0x2744)> + #210.1.1.num.int <10062 (0x274e)> + #215.1.1.num.int <10071 (0x2757)> + #221.1.1.num.int <10081 (0x2761)> + #228.1.1.num.int <10091 (0x276b)> + #233.1.1.num.int <100101 (0x18705)> + #238.1.1.num.int <100111 (0x1870f)> diff --git a/tests/0005_if_ifelse/screen.log.ref b/tests/0005_if_ifelse/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0005_if_ifelse/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0005_if_ifelse/trace.log.ref b/tests/0005_if_ifelse/trace.log.ref new file mode 100644 index 0000000..e1d5d75 --- /dev/null +++ b/tests/0005_if_ifelse/trace.log.ref @@ -0,0 +1,739 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 6, 10[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xa, size 4> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 8, 15[2] +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.1.num.bool +== backtrace == + [0] #191.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 1001 (0x3e9) +== backtrace == + [0] #191.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #190:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x11, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x12, type 6, 19[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x13, size 4> + [1] #194.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x17, type 8, 24[2] +GC: --#195.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x1a, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x1b, type 6, 28[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x1c, size 4> + [1] #0.0.nil + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x20, type 8, 33[2] +GC: --#196.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x23, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x24, type 6, 37[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x25, size 4> + [1] #197.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x29, type 6, 42[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x2a, size 4> + [1] #198.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x25, size 4> + [2] #197.1.1.num.bool <1 (0x1)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x2e, type 8, 47[6] +GC: ++#198.1.1.mem.code.ro +GC: --#199.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#198.1.2.mem.code.ro +GC: --#197.1.1.num.bool +== backtrace == + [0] #200.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #198:0x0, type 1, 10041 (0x2739) +== backtrace == + [0] #200.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #198:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#198.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x35, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x36, type 6, 55[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x37, size 4> + [1] #202.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x3b, type 6, 60[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x3c, size 4> + [1] #203.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x37, size 4> + [2] #202.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x40, type 8, 65[6] +GC: ++#204.1.1.mem.code.ro +GC: --#204.1.2.mem.code.ro +GC: --#203.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.num.bool +== backtrace == + [0] #205.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #204:0x0, type 1, 10052 (0x2744) +== backtrace == + [0] #205.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #204:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#205.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#204.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x47, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x48, type 6, 73[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x49, size 4> + [1] #0.0.nil + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x4d, type 6, 78[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x4e, size 4> + [1] #207.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x49, size 4> + [2] #0.0.nil + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x52, type 8, 83[6] +GC: ++#208.1.1.mem.code.ro +GC: --#208.1.2.mem.code.ro +GC: --#207.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #209.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #208:0x0, type 1, 10062 (0x274e) +== backtrace == + [0] #209.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #208:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#208.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x59, type 7, 90[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5a, size 0, ""> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x5a, type 6, 91[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x5b, size 4> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5a, size 0, ""> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x5f, type 6, 96[4] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x60, size 4> + [1] #212.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x5b, size 4> + [2] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x5a, size 0, ""> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x64, type 8, 101[6] +GC: ++#212.1.1.mem.code.ro +GC: --#213.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#212.1.2.mem.code.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #214.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #212:0x0, type 1, 10071 (0x2757) +== backtrace == + [0] #214.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #212:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#212.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6b, type 8, 108[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6e, type 8, 111[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.array + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x70, type 6, 113[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x71, size 4> + [1] #217.1.1.array + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x75, type 6, 118[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x76, size 4> + [1] #218.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x71, size 4> + [2] #217.1.1.array + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x7a, type 8, 123[6] +GC: ++#218.1.1.mem.code.ro +GC: --#219.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#218.1.2.mem.code.ro +GC: --#217.1.1.array +GC: --#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #218:0x0, type 1, 10081 (0x2761) +== backtrace == + [0] #220.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #218:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#220.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#218.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x81, type 8, 130[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x83, type 7, 132[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x84, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x85, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <2 (0x2)> + [1] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x84, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x86, type 8, 135[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.hash + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x88, type 6, 137[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x89, size 4> + [1] #224.1.1.hash + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x8d, type 6, 142[4] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x8e, size 4> + [1] #225.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x89, size 4> + [2] #224.1.1.hash + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x92, type 8, 147[6] +GC: ++#225.1.1.mem.code.ro +GC: --#226.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#225.1.2.mem.code.ro +GC: --#224.1.1.hash +GC: --#222.1.1.mem.str.ro +GC: --#223.1.1.num.int +GC: --#186.1.3.mem.ro +== backtrace == + [0] #227.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #225:0x0, type 1, 10091 (0x276b) +== backtrace == + [0] #227.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #225:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#227.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#225.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x99, type 6, 154[2] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x9a, size 2> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x9c, type 6, 157[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x9d, size 5> + [1] #229.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x9a, size 2> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xa2, type 6, 163[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xa3, size 5> + [1] #230.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x9d, size 5> + [2] #229.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x9a, size 2> + [3] #228.1.1.num.int <10091 (0x276b)> + [4] #221.1.1.num.int <10081 (0x2761)> + [5] #215.1.1.num.int <10071 (0x2757)> + [6] #210.1.1.num.int <10062 (0x274e)> + [7] #206.1.1.num.int <10052 (0x2744)> + [8] #201.1.1.num.int <10041 (0x2739)> + [9] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xa8, type 8, 169[6] +GC: ++#230.1.1.mem.code.ro +GC: --#231.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#230.1.2.mem.code.ro +GC: --#229.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #232.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #230:0x0, type 1, 100101 (0x18705) +== backtrace == + [0] #232.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #230:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#232.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#230.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xaf, type 9, 176[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0xb0, size 3, "foo"> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xb3, type 6, 180[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xb4, size 5> + [1] #234.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xb0, size 3, "foo"> + [2] #233.1.1.num.int <100101 (0x18705)> + [3] #228.1.1.num.int <10091 (0x276b)> + [4] #221.1.1.num.int <10081 (0x2761)> + [5] #215.1.1.num.int <10071 (0x2757)> + [6] #210.1.1.num.int <10062 (0x274e)> + [7] #206.1.1.num.int <10052 (0x2744)> + [8] #201.1.1.num.int <10041 (0x2739)> + [9] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xb9, type 6, 186[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xba, size 5> + [1] #235.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xb4, size 5> + [2] #234.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xb0, size 3, "foo"> + [3] #233.1.1.num.int <100101 (0x18705)> + [4] #228.1.1.num.int <10091 (0x276b)> + [5] #221.1.1.num.int <10081 (0x2761)> + [6] #215.1.1.num.int <10071 (0x2757)> + [7] #210.1.1.num.int <10062 (0x274e)> + [8] #206.1.1.num.int <10052 (0x2744)> + [9] #201.1.1.num.int <10041 (0x2739)> + [10] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xbf, type 8, 192[6] +GC: ++#235.1.1.mem.code.ro +GC: --#236.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#235.1.2.mem.code.ro +GC: --#234.1.1.mem.ref.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #237.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #235:0x0, type 1, 100111 (0x1870f) +== backtrace == + [0] #237.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <100111 (0x1870f)> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #235:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#237.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#235.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <100111 (0x1870f)> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> diff --git a/tests/0006_repeat/basic.log.ref b/tests/0006_repeat/basic.log.ref new file mode 100644 index 0000000..8b3a1a5 --- /dev/null +++ b/tests/0006_repeat/basic.log.ref @@ -0,0 +1,157 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0006_repeat/code.log.ref b/tests/0006_repeat/code.log.ref new file mode 100644 index 0000000..a38ba7e --- /dev/null +++ b/tests/0006_repeat/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d word 68 72 65 70 65 61 74 repeat + 2 6 0x00014 int 01 0 + 7 0x00015 code 36 { + 8 0x00016 int 81 14 20 + 9 0x00018 prim 13 } + 10 0x00019 word 68 72 65 70 65 61 74 repeat + 3 11 0x00020 int 81 f6 -10 + 12 0x00022 code 36 { + 13 0x00023 int 81 1e 30 + 14 0x00025 prim 13 } + 15 0x00026 word 68 72 65 70 65 61 74 repeat + 4 16 0x0002d int 41 4 + 17 0x0002e code 36 { + 18 0x0002f int 81 28 40 + 19 0x00031 prim 13 } + 20 0x00032 word 68 72 65 70 65 61 74 repeat diff --git a/tests/0006_repeat/code1.log.ref b/tests/0006_repeat/code1.log.ref new file mode 100644 index 0000000..4d8533c --- /dev/null +++ b/tests/0006_repeat/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d word 68 72 65 70 65 61 74 repeat + 2 6 0x00014 int 01 0 + 7 0x00015 code 36 { + 8 0x00016 int 81 14 20 + 9 0x00018 prim 13 } + 10 0x00019 xref 84 0c repeat + 3 11 0x0001b int 81 f6 -10 + 12 0x0001d code 36 { + 13 0x0001e int 81 1e 30 + 14 0x00020 prim 13 } + 15 0x00021 xref 84 14 repeat + 4 16 0x00023 int 41 4 + 17 0x00024 code 36 { + 18 0x00025 int 81 28 40 + 19 0x00027 prim 13 } + 20 0x00028 xref 84 1b repeat diff --git a/tests/0006_repeat/code2.log.ref b/tests/0006_repeat/code2.log.ref new file mode 100644 index 0000000..b4587ca --- /dev/null +++ b/tests/0006_repeat/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d prim 83 0c repeat + 2 6 0x0000f int 01 0 + 7 0x00010 code 36 { + 8 0x00011 int 81 14 20 + 9 0x00013 prim 13 } + 10 0x00014 prim 83 0c repeat + 3 11 0x00016 int 81 f6 -10 + 12 0x00018 code 36 { + 13 0x00019 int 81 1e 30 + 14 0x0001b prim 13 } + 15 0x0001c prim 83 0c repeat + 4 16 0x0001e int 41 4 + 17 0x0001f code 36 { + 18 0x00020 int 81 28 40 + 19 0x00022 prim 13 } + 20 0x00023 prim 83 0c repeat diff --git a/tests/0006_repeat/main.gs b/tests/0006_repeat/main.gs new file mode 100644 index 0000000..4789f15 --- /dev/null +++ b/tests/0006_repeat/main.gs @@ -0,0 +1,4 @@ +1 { 10 } repeat +0 { 20 } repeat +-10 { 30 } repeat +4 { 40 } repeat diff --git a/tests/0006_repeat/mem.log.ref b/tests/0006_repeat/mem.log.ref new file mode 100644 index 0000000..f4a28c0 --- /dev/null +++ b/tests/0006_repeat/mem.log.ref @@ -0,0 +1,765 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 0.00, 0x001d6b40[ 56] + 11: 192.01, 0x001d6b80[ 72] + 12: 0.00, 0x001d6bd0[14849072] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 11 36 81 0a 13 68 72 65 uQ..Bz.`.6...hre + 70 65 61 74 01 36 81 14 13 68 72 65 70 65 61 74 peat.6...hrepeat + 81 f6 36 81 1e 13 68 72 65 70 65 61 74 41 36 81 ..6...hrepeatA6. + 28 13 68 72 65 70 65 61 74 (.hrepeat + #187.1.1.array + [ 0] #193.1.1.num.int <10 (0xa)> + [ 1] #201.1.1.num.int <40 (0x28)> + [ 2] #202.1.1.num.int <40 (0x28)> + [ 3] #203.1.1.num.int <40 (0x28)> + [ 4] #204.1.1.num.int <40 (0x28)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #192.1.1.array + #193.1.1.num.int <10 (0xa)> + #201.1.1.num.int <40 (0x28)> + #202.1.1.num.int <40 (0x28)> + #203.1.1.num.int <40 (0x28)> + #204.1.1.num.int <40 (0x28)> diff --git a/tests/0006_repeat/screen.log.ref b/tests/0006_repeat/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0006_repeat/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0006_repeat/trace.log.ref b/tests/0006_repeat/trace.log.ref new file mode 100644 index 0000000..15f7b42 --- /dev/null +++ b/tests/0006_repeat/trace.log.ref @@ -0,0 +1,180 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1 (0x1)> +IP: #186:0x9, type 6, 10[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xa, size 3> + [1] #189.1.1.num.int <1 (0x1)> +IP: #186:0xd, type 8, 14[6] +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.1.num.int +== backtrace == + [0] #191.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #191.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.repeat +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x14, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x15, type 6, 22[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x16, size 3> + [1] #194.1.1.num.int <0 (0x0)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x19, type 8, 26[6] +GC: --#195.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#194.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x20, type 1, -10 (0xfffffffffffffff6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x22, type 6, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x23, size 3> + [1] #196.1.1.num.int <-10 (0xfffffffffffffff6)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x26, type 8, 39[6] +GC: --#197.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x2d, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <4 (0x4)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x2e, type 6, 47[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x2f, size 3> + [1] #198.1.1.num.int <4 (0x4)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x32, type 8, 51[6] +GC: ++#199.1.1.mem.code.ro +GC: --#199.1.2.mem.code.ro +GC: --#198.1.1.num.int +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <40 (0x28)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <40 (0x28)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <40 (0x28)> + [1] #201.1.1.num.int <40 (0x28)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <40 (0x28)> + [1] #201.1.1.num.int <40 (0x28)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #202.1.1.num.int <40 (0x28)> + [2] #201.1.1.num.int <40 (0x28)> + [3] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #202.1.1.num.int <40 (0x28)> + [2] #201.1.1.num.int <40 (0x28)> + [3] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <40 (0x28)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #202.1.1.num.int <40 (0x28)> + [3] #201.1.1.num.int <40 (0x28)> + [4] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.repeat +GC: --#188.1.2.ctx.func +GC: --#199.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <40 (0x28)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #202.1.1.num.int <40 (0x28)> + [3] #201.1.1.num.int <40 (0x28)> + [4] #193.1.1.num.int <10 (0xa)> diff --git a/tests/0007_for/basic.log.ref b/tests/0007_for/basic.log.ref new file mode 100644 index 0000000..ec6d6ce --- /dev/null +++ b/tests/0007_for/basic.log.ref @@ -0,0 +1,1007 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <12 (0xc)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <14 (0xe)> + [1] #xxxx.1.1.num.int <12 (0xc)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <14 (0xe)> + [2] #xxxx.1.1.num.int <12 (0xc)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <18 (0x12)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <14 (0xe)> + [3] #xxxx.1.1.num.int <12 (0xc)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <14 (0xe)> + [4] #xxxx.1.1.num.int <12 (0xc)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <14 (0xe)> + [4] #xxxx.1.1.num.int <12 (0xc)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <14 (0xe)> + [5] #xxxx.1.1.num.int <12 (0xc)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <14 (0xe)> + [6] #xxxx.1.1.num.int <12 (0xc)> + [7] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <107 (0x6b)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <14 (0xe)> + [7] #xxxx.1.1.num.int <12 (0xc)> + [8] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <107 (0x6b)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <14 (0xe)> + [5] #xxxx.1.1.num.int <12 (0xc)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <102 (0x66)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <14 (0xe)> + [6] #xxxx.1.1.num.int <12 (0xc)> + [7] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <104 (0x68)> + [1] #xxxx.1.1.num.int <102 (0x66)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <14 (0xe)> + [7] #xxxx.1.1.num.int <12 (0xc)> + [8] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <106 (0x6a)> + [1] #xxxx.1.1.num.int <104 (0x68)> + [2] #xxxx.1.1.num.int <102 (0x66)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <106 (0x6a)> + [1] #xxxx.1.1.num.int <104 (0x68)> + [2] #xxxx.1.1.num.int <102 (0x66)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1100 (0x44c)> + [1] #xxxx.1.1.num.int <106 (0x6a)> + [2] #xxxx.1.1.num.int <104 (0x68)> + [3] #xxxx.1.1.num.int <102 (0x66)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <14 (0xe)> + [9] #xxxx.1.1.num.int <12 (0xc)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1100 (0x44c)> + [2] #xxxx.1.1.num.int <106 (0x6a)> + [3] #xxxx.1.1.num.int <104 (0x68)> + [4] #xxxx.1.1.num.int <102 (0x66)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <14 (0xe)> + [10] #xxxx.1.1.num.int <12 (0xc)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <1100 (0x44c)> + [3] #xxxx.1.1.num.int <106 (0x6a)> + [4] #xxxx.1.1.num.int <104 (0x68)> + [5] #xxxx.1.1.num.int <102 (0x66)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <14 (0xe)> + [11] #xxxx.1.1.num.int <12 (0xc)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <1100 (0x44c)> + [4] #xxxx.1.1.num.int <106 (0x6a)> + [5] #xxxx.1.1.num.int <104 (0x68)> + [6] #xxxx.1.1.num.int <102 (0x66)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <14 (0xe)> + [12] #xxxx.1.1.num.int <12 (0xc)> + [13] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1100 (0x44c)> + [1] #xxxx.1.1.num.int <106 (0x6a)> + [2] #xxxx.1.1.num.int <104 (0x68)> + [3] #xxxx.1.1.num.int <102 (0x66)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <14 (0xe)> + [9] #xxxx.1.1.num.int <12 (0xc)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1098 (0x44a)> + [1] #xxxx.1.1.num.int <1100 (0x44c)> + [2] #xxxx.1.1.num.int <106 (0x6a)> + [3] #xxxx.1.1.num.int <104 (0x68)> + [4] #xxxx.1.1.num.int <102 (0x66)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <14 (0xe)> + [10] #xxxx.1.1.num.int <12 (0xc)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1096 (0x448)> + [1] #xxxx.1.1.num.int <1098 (0x44a)> + [2] #xxxx.1.1.num.int <1100 (0x44c)> + [3] #xxxx.1.1.num.int <106 (0x6a)> + [4] #xxxx.1.1.num.int <104 (0x68)> + [5] #xxxx.1.1.num.int <102 (0x66)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <14 (0xe)> + [11] #xxxx.1.1.num.int <12 (0xc)> + [12] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1094 (0x446)> + [1] #xxxx.1.1.num.int <1096 (0x448)> + [2] #xxxx.1.1.num.int <1098 (0x44a)> + [3] #xxxx.1.1.num.int <1100 (0x44c)> + [4] #xxxx.1.1.num.int <106 (0x6a)> + [5] #xxxx.1.1.num.int <104 (0x68)> + [6] #xxxx.1.1.num.int <102 (0x66)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <14 (0xe)> + [12] #xxxx.1.1.num.int <12 (0xc)> + [13] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1092 (0x444)> + [1] #xxxx.1.1.num.int <1094 (0x446)> + [2] #xxxx.1.1.num.int <1096 (0x448)> + [3] #xxxx.1.1.num.int <1098 (0x44a)> + [4] #xxxx.1.1.num.int <1100 (0x44c)> + [5] #xxxx.1.1.num.int <106 (0x6a)> + [6] #xxxx.1.1.num.int <104 (0x68)> + [7] #xxxx.1.1.num.int <102 (0x66)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <18 (0x12)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <14 (0xe)> + [13] #xxxx.1.1.num.int <12 (0xc)> + [14] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <1092 (0x444)> + [2] #xxxx.1.1.num.int <1094 (0x446)> + [3] #xxxx.1.1.num.int <1096 (0x448)> + [4] #xxxx.1.1.num.int <1098 (0x44a)> + [5] #xxxx.1.1.num.int <1100 (0x44c)> + [6] #xxxx.1.1.num.int <106 (0x6a)> + [7] #xxxx.1.1.num.int <104 (0x68)> + [8] #xxxx.1.1.num.int <102 (0x66)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <14 (0xe)> + [14] #xxxx.1.1.num.int <12 (0xc)> + [15] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <1092 (0x444)> + [2] #xxxx.1.1.num.int <1094 (0x446)> + [3] #xxxx.1.1.num.int <1096 (0x448)> + [4] #xxxx.1.1.num.int <1098 (0x44a)> + [5] #xxxx.1.1.num.int <1100 (0x44c)> + [6] #xxxx.1.1.num.int <106 (0x6a)> + [7] #xxxx.1.1.num.int <104 (0x68)> + [8] #xxxx.1.1.num.int <102 (0x66)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <14 (0xe)> + [14] #xxxx.1.1.num.int <12 (0xc)> + [15] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11000 (0x2af8)> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <1092 (0x444)> + [3] #xxxx.1.1.num.int <1094 (0x446)> + [4] #xxxx.1.1.num.int <1096 (0x448)> + [5] #xxxx.1.1.num.int <1098 (0x44a)> + [6] #xxxx.1.1.num.int <1100 (0x44c)> + [7] #xxxx.1.1.num.int <106 (0x6a)> + [8] #xxxx.1.1.num.int <104 (0x68)> + [9] #xxxx.1.1.num.int <102 (0x66)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <14 (0xe)> + [15] #xxxx.1.1.num.int <12 (0xc)> + [16] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <11000 (0x2af8)> + [2] #xxxx.1.1.num.int <1090 (0x442)> + [3] #xxxx.1.1.num.int <1092 (0x444)> + [4] #xxxx.1.1.num.int <1094 (0x446)> + [5] #xxxx.1.1.num.int <1096 (0x448)> + [6] #xxxx.1.1.num.int <1098 (0x44a)> + [7] #xxxx.1.1.num.int <1100 (0x44c)> + [8] #xxxx.1.1.num.int <106 (0x6a)> + [9] #xxxx.1.1.num.int <104 (0x68)> + [10] #xxxx.1.1.num.int <102 (0x66)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <20 (0x14)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <14 (0xe)> + [16] #xxxx.1.1.num.int <12 (0xc)> + [17] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10993 (0x2af1)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <11000 (0x2af8)> + [3] #xxxx.1.1.num.int <1090 (0x442)> + [4] #xxxx.1.1.num.int <1092 (0x444)> + [5] #xxxx.1.1.num.int <1094 (0x446)> + [6] #xxxx.1.1.num.int <1096 (0x448)> + [7] #xxxx.1.1.num.int <1098 (0x44a)> + [8] #xxxx.1.1.num.int <1100 (0x44c)> + [9] #xxxx.1.1.num.int <106 (0x6a)> + [10] #xxxx.1.1.num.int <104 (0x68)> + [11] #xxxx.1.1.num.int <102 (0x66)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <20 (0x14)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <14 (0xe)> + [17] #xxxx.1.1.num.int <12 (0xc)> + [18] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <10993 (0x2af1)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11000 (0x2af8)> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <1092 (0x444)> + [3] #xxxx.1.1.num.int <1094 (0x446)> + [4] #xxxx.1.1.num.int <1096 (0x448)> + [5] #xxxx.1.1.num.int <1098 (0x44a)> + [6] #xxxx.1.1.num.int <1100 (0x44c)> + [7] #xxxx.1.1.num.int <106 (0x6a)> + [8] #xxxx.1.1.num.int <104 (0x68)> + [9] #xxxx.1.1.num.int <102 (0x66)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <14 (0xe)> + [15] #xxxx.1.1.num.int <12 (0xc)> + [16] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10998 (0x2af6)> + [1] #xxxx.1.1.num.int <11000 (0x2af8)> + [2] #xxxx.1.1.num.int <1090 (0x442)> + [3] #xxxx.1.1.num.int <1092 (0x444)> + [4] #xxxx.1.1.num.int <1094 (0x446)> + [5] #xxxx.1.1.num.int <1096 (0x448)> + [6] #xxxx.1.1.num.int <1098 (0x44a)> + [7] #xxxx.1.1.num.int <1100 (0x44c)> + [8] #xxxx.1.1.num.int <106 (0x6a)> + [9] #xxxx.1.1.num.int <104 (0x68)> + [10] #xxxx.1.1.num.int <102 (0x66)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <20 (0x14)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <14 (0xe)> + [16] #xxxx.1.1.num.int <12 (0xc)> + [17] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10996 (0x2af4)> + [1] #xxxx.1.1.num.int <10998 (0x2af6)> + [2] #xxxx.1.1.num.int <11000 (0x2af8)> + [3] #xxxx.1.1.num.int <1090 (0x442)> + [4] #xxxx.1.1.num.int <1092 (0x444)> + [5] #xxxx.1.1.num.int <1094 (0x446)> + [6] #xxxx.1.1.num.int <1096 (0x448)> + [7] #xxxx.1.1.num.int <1098 (0x44a)> + [8] #xxxx.1.1.num.int <1100 (0x44c)> + [9] #xxxx.1.1.num.int <106 (0x6a)> + [10] #xxxx.1.1.num.int <104 (0x68)> + [11] #xxxx.1.1.num.int <102 (0x66)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <20 (0x14)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <14 (0xe)> + [17] #xxxx.1.1.num.int <12 (0xc)> + [18] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <190 (0xbe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <190 (0xbe)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <210 (0xd2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <210 (0xd2)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0007_for/code.log.ref b/tests/0007_for/code.log.ref new file mode 100644 index 0000000..85944b7 --- /dev/null +++ b/tests/0007_for/code.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f word 38 66 6f 72 for + 2 7 0x00013 int 81 64 100 + 8 0x00015 int 21 2 + 9 0x00016 int 81 6b 107 + 10 0x00018 code 16 { + 11 0x00019 prim 13 } + 12 0x0001a word 38 66 6f 72 for + 3 13 0x0001e int 91 4c 04 1100 + 14 0x00021 int 81 fe -2 + 15 0x00023 int 91 42 04 1090 + 16 0x00026 code 16 { + 17 0x00027 prim 13 } + 18 0x00028 word 38 66 6f 72 for + 4 19 0x0002c int 91 f8 2a 11000 + 20 0x0002f int 81 fe -2 + 21 0x00031 int 91 f1 2a 10993 + 22 0x00034 code 16 { + 23 0x00035 prim 13 } + 24 0x00036 word 38 66 6f 72 for + 5 25 0x0003a int 91 c8 00 200 + 26 0x0003d int 11 1 + 27 0x0003e int 91 be 00 190 + 28 0x00041 code 16 { + 29 0x00042 prim 13 } + 30 0x00043 word 38 66 6f 72 for + 6 31 0x00047 int 91 c8 00 200 + 32 0x0004a int 81 ff -1 + 33 0x0004c int 91 d2 00 210 + 34 0x0004f code 16 { + 35 0x00050 prim 13 } + 36 0x00051 word 38 66 6f 72 for + 7 37 0x00055 int 01 0 + 38 0x00056 int 01 0 + 39 0x00057 int 81 64 100 + 40 0x00059 code 16 { + 41 0x0005a prim 13 } + 42 0x0005b word 38 66 6f 72 for diff --git a/tests/0007_for/code1.log.ref b/tests/0007_for/code1.log.ref new file mode 100644 index 0000000..be0401e --- /dev/null +++ b/tests/0007_for/code1.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f word 38 66 6f 72 for + 2 7 0x00013 int 81 64 100 + 8 0x00015 int 21 2 + 9 0x00016 int 81 6b 107 + 10 0x00018 code 16 { + 11 0x00019 prim 13 } + 12 0x0001a xref 84 0b for + 3 13 0x0001c int 91 4c 04 1100 + 14 0x0001f int 81 fe -2 + 15 0x00021 int 91 42 04 1090 + 16 0x00024 code 16 { + 17 0x00025 prim 13 } + 18 0x00026 xref 84 17 for + 4 19 0x00028 int 91 f8 2a 11000 + 20 0x0002b int 81 fe -2 + 21 0x0002d int 91 f1 2a 10993 + 22 0x00030 code 16 { + 23 0x00031 prim 13 } + 24 0x00032 xref 84 23 for + 5 25 0x00034 int 91 c8 00 200 + 26 0x00037 int 11 1 + 27 0x00038 int 91 be 00 190 + 28 0x0003b code 16 { + 29 0x0003c prim 13 } + 30 0x0003d xref 84 2e for + 6 31 0x0003f int 91 c8 00 200 + 32 0x00042 int 81 ff -1 + 33 0x00044 int 91 d2 00 210 + 34 0x00047 code 16 { + 35 0x00048 prim 13 } + 36 0x00049 xref 84 3a for + 7 37 0x0004b int 01 0 + 38 0x0004c int 01 0 + 39 0x0004d int 81 64 100 + 40 0x0004f code 16 { + 41 0x00050 prim 13 } + 42 0x00051 xref 84 42 for diff --git a/tests/0007_for/code2.log.ref b/tests/0007_for/code2.log.ref new file mode 100644 index 0000000..ad798bc --- /dev/null +++ b/tests/0007_for/code2.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f prim 83 0d for + 2 7 0x00011 int 81 64 100 + 8 0x00013 int 21 2 + 9 0x00014 int 81 6b 107 + 10 0x00016 code 16 { + 11 0x00017 prim 13 } + 12 0x00018 prim 83 0d for + 3 13 0x0001a int 91 4c 04 1100 + 14 0x0001d int 81 fe -2 + 15 0x0001f int 91 42 04 1090 + 16 0x00022 code 16 { + 17 0x00023 prim 13 } + 18 0x00024 prim 83 0d for + 4 19 0x00026 int 91 f8 2a 11000 + 20 0x00029 int 81 fe -2 + 21 0x0002b int 91 f1 2a 10993 + 22 0x0002e code 16 { + 23 0x0002f prim 13 } + 24 0x00030 prim 83 0d for + 5 25 0x00032 int 91 c8 00 200 + 26 0x00035 int 11 1 + 27 0x00036 int 91 be 00 190 + 28 0x00039 code 16 { + 29 0x0003a prim 13 } + 30 0x0003b prim 83 0d for + 6 31 0x0003d int 91 c8 00 200 + 32 0x00040 int 81 ff -1 + 33 0x00042 int 91 d2 00 210 + 34 0x00045 code 16 { + 35 0x00046 prim 13 } + 36 0x00047 prim 83 0d for + 7 37 0x00049 int 01 0 + 38 0x0004a int 01 0 + 39 0x0004b int 81 64 100 + 40 0x0004d code 16 { + 41 0x0004e prim 13 } + 42 0x0004f prim 83 0d for diff --git a/tests/0007_for/main.gs b/tests/0007_for/main.gs new file mode 100644 index 0000000..feb8c23 --- /dev/null +++ b/tests/0007_for/main.gs @@ -0,0 +1,7 @@ +10 2 20 { } for +100 2 107 { } for +1100 -2 1090 { } for +11000 -2 10993 { } for +200 1 190 { } for +200 -1 210 { } for +0 0 100 { } for diff --git a/tests/0007_for/mem.log.ref b/tests/0007_for/mem.log.ref new file mode 100644 index 0000000..85d231e --- /dev/null +++ b/tests/0007_for/mem.log.ref @@ -0,0 +1,798 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 96] + 8: 0.00, 0x001d6ad4[ 72] + 9: 188.01, 0x001d6b24[ 56] + 10: 0.00, 0x001d6b64[ 56] + 11: 194.01, 0x001d6ba4[ 72] + 12: 187.01, 0x001d6bf4[ 144] + 13: 0.00, 0x001d6c8c[14848884] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 0a 21 81 14 16 13 38 uQ..Bz.`..!....8 + 66 6f 72 81 64 21 81 6b 16 13 38 66 6f 72 91 4c for.d!.k..8for.L + 04 81 fe 91 42 04 16 13 38 66 6f 72 91 f8 2a 81 ....B...8for..*. + fe 91 f1 2a 16 13 38 66 6f 72 91 c8 00 11 91 be ...*..8for...... + 00 16 13 38 66 6f 72 91 c8 00 81 ff 91 d2 00 16 ...8for......... + 13 38 66 6f 72 01 01 81 64 16 13 38 66 6f 72 .8for...d..8for + #187.1.1.array + [ 0] #189.1.1.num.int <10 (0xa)> + [ 1] #195.1.1.num.int <12 (0xc)> + [ 2] #196.1.1.num.int <14 (0xe)> + [ 3] #197.1.1.num.int <16 (0x10)> + [ 4] #198.1.1.num.int <18 (0x12)> + [ 5] #199.1.1.num.int <20 (0x14)> + [ 6] #200.1.1.num.int <100 (0x64)> + [ 7] #205.1.1.num.int <102 (0x66)> + [ 8] #206.1.1.num.int <104 (0x68)> + [ 9] #207.1.1.num.int <106 (0x6a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #214.1.1.num.int <1096 (0x448)> + [13] #215.1.1.num.int <1094 (0x446)> + [14] #216.1.1.num.int <1092 (0x444)> + [15] #217.1.1.num.int <1090 (0x442)> + [16] #218.1.1.num.int <11000 (0x2af8)> + [17] #223.1.1.num.int <10998 (0x2af6)> + [18] #224.1.1.num.int <10996 (0x2af4)> + [19] #225.1.1.num.int <10994 (0x2af2)> + #188.1.1.ctx.func + type 17, ip 0x5f (0x5f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <10 (0xa)> + #194.1.1.array + #195.1.1.num.int <12 (0xc)> + #196.1.1.num.int <14 (0xe)> + #197.1.1.num.int <16 (0x10)> + #198.1.1.num.int <18 (0x12)> + #199.1.1.num.int <20 (0x14)> + #200.1.1.num.int <100 (0x64)> + #205.1.1.num.int <102 (0x66)> + #206.1.1.num.int <104 (0x68)> + #207.1.1.num.int <106 (0x6a)> + #208.1.1.num.int <1100 (0x44c)> + #213.1.1.num.int <1098 (0x44a)> + #214.1.1.num.int <1096 (0x448)> + #215.1.1.num.int <1094 (0x446)> + #216.1.1.num.int <1092 (0x444)> + #217.1.1.num.int <1090 (0x442)> + #218.1.1.num.int <11000 (0x2af8)> + #223.1.1.num.int <10998 (0x2af6)> + #224.1.1.num.int <10996 (0x2af4)> + #225.1.1.num.int <10994 (0x2af2)> diff --git a/tests/0007_for/screen.log.ref b/tests/0007_for/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0007_for/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0007_for/trace.log.ref b/tests/0007_for/trace.log.ref new file mode 100644 index 0000000..1c178a0 --- /dev/null +++ b/tests/0007_for/trace.log.ref @@ -0,0 +1,1063 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #186:0xa, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2 (0x2)> + [1] #189.1.1.num.int <10 (0xa)> +IP: #186:0xb, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #189.1.1.num.int <10 (0xa)> +IP: #186:0xd, type 6, 14[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xe, size 1> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #189.1.1.num.int <10 (0xa)> +IP: #186:0xf, type 8, 16[3] +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.1.num.int +GC: --#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <12 (0xc)> + [1] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <14 (0xe)> + [1] #195.1.1.num.int <12 (0xc)> + [2] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <16 (0x10)> + [1] #196.1.1.num.int <14 (0xe)> + [2] #195.1.1.num.int <12 (0xc)> + [3] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <18 (0x12)> + [1] #197.1.1.num.int <16 (0x10)> + [2] #196.1.1.num.int <14 (0xe)> + [3] #195.1.1.num.int <12 (0xc)> + [4] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <20 (0x14)> + [1] #198.1.1.num.int <18 (0x12)> + [2] #197.1.1.num.int <16 (0x10)> + [3] #196.1.1.num.int <14 (0xe)> + [4] #195.1.1.num.int <12 (0xc)> + [5] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#192.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <20 (0x14)> + [1] #198.1.1.num.int <18 (0x12)> + [2] #197.1.1.num.int <16 (0x10)> + [3] #196.1.1.num.int <14 (0xe)> + [4] #195.1.1.num.int <12 (0xc)> + [5] #189.1.1.num.int <10 (0xa)> +IP: #186:0x13, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <100 (0x64)> + [1] #199.1.1.num.int <20 (0x14)> + [2] #198.1.1.num.int <18 (0x12)> + [3] #197.1.1.num.int <16 (0x10)> + [4] #196.1.1.num.int <14 (0xe)> + [5] #195.1.1.num.int <12 (0xc)> + [6] #189.1.1.num.int <10 (0xa)> +IP: #186:0x15, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <2 (0x2)> + [1] #200.1.1.num.int <100 (0x64)> + [2] #199.1.1.num.int <20 (0x14)> + [3] #198.1.1.num.int <18 (0x12)> + [4] #197.1.1.num.int <16 (0x10)> + [5] #196.1.1.num.int <14 (0xe)> + [6] #195.1.1.num.int <12 (0xc)> + [7] #189.1.1.num.int <10 (0xa)> +IP: #186:0x16, type 1, 107 (0x6b) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <107 (0x6b)> + [1] #201.1.1.num.int <2 (0x2)> + [2] #200.1.1.num.int <100 (0x64)> + [3] #199.1.1.num.int <20 (0x14)> + [4] #198.1.1.num.int <18 (0x12)> + [5] #197.1.1.num.int <16 (0x10)> + [6] #196.1.1.num.int <14 (0xe)> + [7] #195.1.1.num.int <12 (0xc)> + [8] #189.1.1.num.int <10 (0xa)> +IP: #186:0x18, type 6, 25[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x19, size 1> + [1] #202.1.1.num.int <107 (0x6b)> + [2] #201.1.1.num.int <2 (0x2)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #186:0x1a, type 8, 27[3] +GC: ++#203.1.1.mem.code.ro +GC: --#203.1.2.mem.code.ro +GC: --#202.1.1.num.int +GC: --#201.1.1.num.int +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <100 (0x64)> + [1] #199.1.1.num.int <20 (0x14)> + [2] #198.1.1.num.int <18 (0x12)> + [3] #197.1.1.num.int <16 (0x10)> + [4] #196.1.1.num.int <14 (0xe)> + [5] #195.1.1.num.int <12 (0xc)> + [6] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <102 (0x66)> + [1] #200.1.1.num.int <100 (0x64)> + [2] #199.1.1.num.int <20 (0x14)> + [3] #198.1.1.num.int <18 (0x12)> + [4] #197.1.1.num.int <16 (0x10)> + [5] #196.1.1.num.int <14 (0xe)> + [6] #195.1.1.num.int <12 (0xc)> + [7] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <104 (0x68)> + [1] #205.1.1.num.int <102 (0x66)> + [2] #200.1.1.num.int <100 (0x64)> + [3] #199.1.1.num.int <20 (0x14)> + [4] #198.1.1.num.int <18 (0x12)> + [5] #197.1.1.num.int <16 (0x10)> + [6] #196.1.1.num.int <14 (0xe)> + [7] #195.1.1.num.int <12 (0xc)> + [8] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <106 (0x6a)> + [1] #206.1.1.num.int <104 (0x68)> + [2] #205.1.1.num.int <102 (0x66)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#204.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#203.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <106 (0x6a)> + [1] #206.1.1.num.int <104 (0x68)> + [2] #205.1.1.num.int <102 (0x66)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #186:0x1e, type 1, 1100 (0x44c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1100 (0x44c)> + [1] #207.1.1.num.int <106 (0x6a)> + [2] #206.1.1.num.int <104 (0x68)> + [3] #205.1.1.num.int <102 (0x66)> + [4] #200.1.1.num.int <100 (0x64)> + [5] #199.1.1.num.int <20 (0x14)> + [6] #198.1.1.num.int <18 (0x12)> + [7] #197.1.1.num.int <16 (0x10)> + [8] #196.1.1.num.int <14 (0xe)> + [9] #195.1.1.num.int <12 (0xc)> + [10] #189.1.1.num.int <10 (0xa)> +IP: #186:0x21, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #208.1.1.num.int <1100 (0x44c)> + [2] #207.1.1.num.int <106 (0x6a)> + [3] #206.1.1.num.int <104 (0x68)> + [4] #205.1.1.num.int <102 (0x66)> + [5] #200.1.1.num.int <100 (0x64)> + [6] #199.1.1.num.int <20 (0x14)> + [7] #198.1.1.num.int <18 (0x12)> + [8] #197.1.1.num.int <16 (0x10)> + [9] #196.1.1.num.int <14 (0xe)> + [10] #195.1.1.num.int <12 (0xc)> + [11] #189.1.1.num.int <10 (0xa)> +IP: #186:0x23, type 1, 1090 (0x442) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <1090 (0x442)> + [1] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #208.1.1.num.int <1100 (0x44c)> + [3] #207.1.1.num.int <106 (0x6a)> + [4] #206.1.1.num.int <104 (0x68)> + [5] #205.1.1.num.int <102 (0x66)> + [6] #200.1.1.num.int <100 (0x64)> + [7] #199.1.1.num.int <20 (0x14)> + [8] #198.1.1.num.int <18 (0x12)> + [9] #197.1.1.num.int <16 (0x10)> + [10] #196.1.1.num.int <14 (0xe)> + [11] #195.1.1.num.int <12 (0xc)> + [12] #189.1.1.num.int <10 (0xa)> +IP: #186:0x26, type 6, 39[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x27, size 1> + [1] #210.1.1.num.int <1090 (0x442)> + [2] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #208.1.1.num.int <1100 (0x44c)> + [4] #207.1.1.num.int <106 (0x6a)> + [5] #206.1.1.num.int <104 (0x68)> + [6] #205.1.1.num.int <102 (0x66)> + [7] #200.1.1.num.int <100 (0x64)> + [8] #199.1.1.num.int <20 (0x14)> + [9] #198.1.1.num.int <18 (0x12)> + [10] #197.1.1.num.int <16 (0x10)> + [11] #196.1.1.num.int <14 (0xe)> + [12] #195.1.1.num.int <12 (0xc)> + [13] #189.1.1.num.int <10 (0xa)> +IP: #186:0x28, type 8, 41[3] +GC: ++#211.1.1.mem.code.ro +GC: --#211.1.2.mem.code.ro +GC: --#210.1.1.num.int +GC: --#209.1.1.num.int +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1100 (0x44c)> + [1] #207.1.1.num.int <106 (0x6a)> + [2] #206.1.1.num.int <104 (0x68)> + [3] #205.1.1.num.int <102 (0x66)> + [4] #200.1.1.num.int <100 (0x64)> + [5] #199.1.1.num.int <20 (0x14)> + [6] #198.1.1.num.int <18 (0x12)> + [7] #197.1.1.num.int <16 (0x10)> + [8] #196.1.1.num.int <14 (0xe)> + [9] #195.1.1.num.int <12 (0xc)> + [10] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1098 (0x44a)> + [1] #208.1.1.num.int <1100 (0x44c)> + [2] #207.1.1.num.int <106 (0x6a)> + [3] #206.1.1.num.int <104 (0x68)> + [4] #205.1.1.num.int <102 (0x66)> + [5] #200.1.1.num.int <100 (0x64)> + [6] #199.1.1.num.int <20 (0x14)> + [7] #198.1.1.num.int <18 (0x12)> + [8] #197.1.1.num.int <16 (0x10)> + [9] #196.1.1.num.int <14 (0xe)> + [10] #195.1.1.num.int <12 (0xc)> + [11] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <1096 (0x448)> + [1] #213.1.1.num.int <1098 (0x44a)> + [2] #208.1.1.num.int <1100 (0x44c)> + [3] #207.1.1.num.int <106 (0x6a)> + [4] #206.1.1.num.int <104 (0x68)> + [5] #205.1.1.num.int <102 (0x66)> + [6] #200.1.1.num.int <100 (0x64)> + [7] #199.1.1.num.int <20 (0x14)> + [8] #198.1.1.num.int <18 (0x12)> + [9] #197.1.1.num.int <16 (0x10)> + [10] #196.1.1.num.int <14 (0xe)> + [11] #195.1.1.num.int <12 (0xc)> + [12] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <1094 (0x446)> + [1] #214.1.1.num.int <1096 (0x448)> + [2] #213.1.1.num.int <1098 (0x44a)> + [3] #208.1.1.num.int <1100 (0x44c)> + [4] #207.1.1.num.int <106 (0x6a)> + [5] #206.1.1.num.int <104 (0x68)> + [6] #205.1.1.num.int <102 (0x66)> + [7] #200.1.1.num.int <100 (0x64)> + [8] #199.1.1.num.int <20 (0x14)> + [9] #198.1.1.num.int <18 (0x12)> + [10] #197.1.1.num.int <16 (0x10)> + [11] #196.1.1.num.int <14 (0xe)> + [12] #195.1.1.num.int <12 (0xc)> + [13] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <1092 (0x444)> + [1] #215.1.1.num.int <1094 (0x446)> + [2] #214.1.1.num.int <1096 (0x448)> + [3] #213.1.1.num.int <1098 (0x44a)> + [4] #208.1.1.num.int <1100 (0x44c)> + [5] #207.1.1.num.int <106 (0x6a)> + [6] #206.1.1.num.int <104 (0x68)> + [7] #205.1.1.num.int <102 (0x66)> + [8] #200.1.1.num.int <100 (0x64)> + [9] #199.1.1.num.int <20 (0x14)> + [10] #198.1.1.num.int <18 (0x12)> + [11] #197.1.1.num.int <16 (0x10)> + [12] #196.1.1.num.int <14 (0xe)> + [13] #195.1.1.num.int <12 (0xc)> + [14] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <1090 (0x442)> + [1] #216.1.1.num.int <1092 (0x444)> + [2] #215.1.1.num.int <1094 (0x446)> + [3] #214.1.1.num.int <1096 (0x448)> + [4] #213.1.1.num.int <1098 (0x44a)> + [5] #208.1.1.num.int <1100 (0x44c)> + [6] #207.1.1.num.int <106 (0x6a)> + [7] #206.1.1.num.int <104 (0x68)> + [8] #205.1.1.num.int <102 (0x66)> + [9] #200.1.1.num.int <100 (0x64)> + [10] #199.1.1.num.int <20 (0x14)> + [11] #198.1.1.num.int <18 (0x12)> + [12] #197.1.1.num.int <16 (0x10)> + [13] #196.1.1.num.int <14 (0xe)> + [14] #195.1.1.num.int <12 (0xc)> + [15] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#212.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#211.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <1090 (0x442)> + [1] #216.1.1.num.int <1092 (0x444)> + [2] #215.1.1.num.int <1094 (0x446)> + [3] #214.1.1.num.int <1096 (0x448)> + [4] #213.1.1.num.int <1098 (0x44a)> + [5] #208.1.1.num.int <1100 (0x44c)> + [6] #207.1.1.num.int <106 (0x6a)> + [7] #206.1.1.num.int <104 (0x68)> + [8] #205.1.1.num.int <102 (0x66)> + [9] #200.1.1.num.int <100 (0x64)> + [10] #199.1.1.num.int <20 (0x14)> + [11] #198.1.1.num.int <18 (0x12)> + [12] #197.1.1.num.int <16 (0x10)> + [13] #196.1.1.num.int <14 (0xe)> + [14] #195.1.1.num.int <12 (0xc)> + [15] #189.1.1.num.int <10 (0xa)> +IP: #186:0x2c, type 1, 11000 (0x2af8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <11000 (0x2af8)> + [1] #217.1.1.num.int <1090 (0x442)> + [2] #216.1.1.num.int <1092 (0x444)> + [3] #215.1.1.num.int <1094 (0x446)> + [4] #214.1.1.num.int <1096 (0x448)> + [5] #213.1.1.num.int <1098 (0x44a)> + [6] #208.1.1.num.int <1100 (0x44c)> + [7] #207.1.1.num.int <106 (0x6a)> + [8] #206.1.1.num.int <104 (0x68)> + [9] #205.1.1.num.int <102 (0x66)> + [10] #200.1.1.num.int <100 (0x64)> + [11] #199.1.1.num.int <20 (0x14)> + [12] #198.1.1.num.int <18 (0x12)> + [13] #197.1.1.num.int <16 (0x10)> + [14] #196.1.1.num.int <14 (0xe)> + [15] #195.1.1.num.int <12 (0xc)> + [16] #189.1.1.num.int <10 (0xa)> +IP: #186:0x2f, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #218.1.1.num.int <11000 (0x2af8)> + [2] #217.1.1.num.int <1090 (0x442)> + [3] #216.1.1.num.int <1092 (0x444)> + [4] #215.1.1.num.int <1094 (0x446)> + [5] #214.1.1.num.int <1096 (0x448)> + [6] #213.1.1.num.int <1098 (0x44a)> + [7] #208.1.1.num.int <1100 (0x44c)> + [8] #207.1.1.num.int <106 (0x6a)> + [9] #206.1.1.num.int <104 (0x68)> + [10] #205.1.1.num.int <102 (0x66)> + [11] #200.1.1.num.int <100 (0x64)> + [12] #199.1.1.num.int <20 (0x14)> + [13] #198.1.1.num.int <18 (0x12)> + [14] #197.1.1.num.int <16 (0x10)> + [15] #196.1.1.num.int <14 (0xe)> + [16] #195.1.1.num.int <12 (0xc)> + [17] #189.1.1.num.int <10 (0xa)> +IP: #186:0x31, type 1, 10993 (0x2af1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <10993 (0x2af1)> + [1] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #218.1.1.num.int <11000 (0x2af8)> + [3] #217.1.1.num.int <1090 (0x442)> + [4] #216.1.1.num.int <1092 (0x444)> + [5] #215.1.1.num.int <1094 (0x446)> + [6] #214.1.1.num.int <1096 (0x448)> + [7] #213.1.1.num.int <1098 (0x44a)> + [8] #208.1.1.num.int <1100 (0x44c)> + [9] #207.1.1.num.int <106 (0x6a)> + [10] #206.1.1.num.int <104 (0x68)> + [11] #205.1.1.num.int <102 (0x66)> + [12] #200.1.1.num.int <100 (0x64)> + [13] #199.1.1.num.int <20 (0x14)> + [14] #198.1.1.num.int <18 (0x12)> + [15] #197.1.1.num.int <16 (0x10)> + [16] #196.1.1.num.int <14 (0xe)> + [17] #195.1.1.num.int <12 (0xc)> + [18] #189.1.1.num.int <10 (0xa)> +IP: #186:0x34, type 6, 53[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x35, size 1> + [1] #220.1.1.num.int <10993 (0x2af1)> + [2] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x36, type 8, 55[3] +GC: ++#221.1.1.mem.code.ro +GC: --#221.1.2.mem.code.ro +GC: --#220.1.1.num.int +GC: --#219.1.1.num.int +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <11000 (0x2af8)> + [1] #217.1.1.num.int <1090 (0x442)> + [2] #216.1.1.num.int <1092 (0x444)> + [3] #215.1.1.num.int <1094 (0x446)> + [4] #214.1.1.num.int <1096 (0x448)> + [5] #213.1.1.num.int <1098 (0x44a)> + [6] #208.1.1.num.int <1100 (0x44c)> + [7] #207.1.1.num.int <106 (0x6a)> + [8] #206.1.1.num.int <104 (0x68)> + [9] #205.1.1.num.int <102 (0x66)> + [10] #200.1.1.num.int <100 (0x64)> + [11] #199.1.1.num.int <20 (0x14)> + [12] #198.1.1.num.int <18 (0x12)> + [13] #197.1.1.num.int <16 (0x10)> + [14] #196.1.1.num.int <14 (0xe)> + [15] #195.1.1.num.int <12 (0xc)> + [16] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <10998 (0x2af6)> + [1] #218.1.1.num.int <11000 (0x2af8)> + [2] #217.1.1.num.int <1090 (0x442)> + [3] #216.1.1.num.int <1092 (0x444)> + [4] #215.1.1.num.int <1094 (0x446)> + [5] #214.1.1.num.int <1096 (0x448)> + [6] #213.1.1.num.int <1098 (0x44a)> + [7] #208.1.1.num.int <1100 (0x44c)> + [8] #207.1.1.num.int <106 (0x6a)> + [9] #206.1.1.num.int <104 (0x68)> + [10] #205.1.1.num.int <102 (0x66)> + [11] #200.1.1.num.int <100 (0x64)> + [12] #199.1.1.num.int <20 (0x14)> + [13] #198.1.1.num.int <18 (0x12)> + [14] #197.1.1.num.int <16 (0x10)> + [15] #196.1.1.num.int <14 (0xe)> + [16] #195.1.1.num.int <12 (0xc)> + [17] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <10996 (0x2af4)> + [1] #223.1.1.num.int <10998 (0x2af6)> + [2] #218.1.1.num.int <11000 (0x2af8)> + [3] #217.1.1.num.int <1090 (0x442)> + [4] #216.1.1.num.int <1092 (0x444)> + [5] #215.1.1.num.int <1094 (0x446)> + [6] #214.1.1.num.int <1096 (0x448)> + [7] #213.1.1.num.int <1098 (0x44a)> + [8] #208.1.1.num.int <1100 (0x44c)> + [9] #207.1.1.num.int <106 (0x6a)> + [10] #206.1.1.num.int <104 (0x68)> + [11] #205.1.1.num.int <102 (0x66)> + [12] #200.1.1.num.int <100 (0x64)> + [13] #199.1.1.num.int <20 (0x14)> + [14] #198.1.1.num.int <18 (0x12)> + [15] #197.1.1.num.int <16 (0x10)> + [16] #196.1.1.num.int <14 (0xe)> + [17] #195.1.1.num.int <12 (0xc)> + [18] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#222.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#221.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <200 (0xc8)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <1 (0x1)> + [1] #226.1.1.num.int <200 (0xc8)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3e, type 1, 190 (0xbe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <190 (0xbe)> + [1] #227.1.1.num.int <1 (0x1)> + [2] #226.1.1.num.int <200 (0xc8)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x41, type 6, 66[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x42, size 1> + [1] #228.1.1.num.int <190 (0xbe)> + [2] #227.1.1.num.int <1 (0x1)> + [3] #226.1.1.num.int <200 (0xc8)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x43, type 8, 68[3] +GC: --#229.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#228.1.1.num.int +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x47, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <200 (0xc8)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4a, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #230.1.1.num.int <200 (0xc8)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4c, type 1, 210 (0xd2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <210 (0xd2)> + [1] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #230.1.1.num.int <200 (0xc8)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4f, type 6, 80[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x50, size 1> + [1] #232.1.1.num.int <210 (0xd2)> + [2] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #230.1.1.num.int <200 (0xc8)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[3] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#232.1.1.num.int +GC: --#231.1.1.num.int +GC: --#230.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x55, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x56, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <0 (0x0)> + [1] #234.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x57, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <100 (0x64)> + [1] #235.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x59, type 6, 90[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x5a, size 1> + [1] #236.1.1.num.int <100 (0x64)> + [2] #235.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x5b, type 8, 92[3] +GC: --#237.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +GC: --#234.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> diff --git a/tests/0008_forall/basic.log.ref b/tests/0008_forall/basic.log.ref new file mode 100644 index 0000000..72cc346 --- /dev/null +++ b/tests/0008_forall/basic.log.ref @@ -0,0 +1,629 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "€ AB23"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€ AB23"> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <130 (0x82)> + [1] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <172 (0xac)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <172 (0xac)> + [2] #xxxx.1.1.num.int <130 (0x82)> + [3] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <172 (0xac)> + [3] #xxxx.1.1.num.int <130 (0x82)> + [4] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <66 (0x42)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <172 (0xac)> + [4] #xxxx.1.1.num.int <130 (0x82)> + [5] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <66 (0x42)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <172 (0xac)> + [5] #xxxx.1.1.num.int <130 (0x82)> + [6] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.2.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <51 (0x33)> + [7] #xxxx.1.1.num.int <50 (0x32)> + [8] #xxxx.1.1.num.int <66 (0x42)> + [9] #xxxx.1.1.num.int <65 (0x41)> + [10] #xxxx.1.1.num.int <10 (0xa)> + [11] #xxxx.1.1.num.int <172 (0xac)> + [12] #xxxx.1.1.num.int <130 (0x82)> + [13] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <51 (0x33)> + [8] #xxxx.1.1.num.int <50 (0x32)> + [9] #xxxx.1.1.num.int <66 (0x42)> + [10] #xxxx.1.1.num.int <65 (0x41)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <172 (0xac)> + [13] #xxxx.1.1.num.int <130 (0x82)> + [14] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <51 (0x33)> + [9] #xxxx.1.1.num.int <50 (0x32)> + [10] #xxxx.1.1.num.int <66 (0x42)> + [11] #xxxx.1.1.num.int <65 (0x41)> + [12] #xxxx.1.1.num.int <10 (0xa)> + [13] #xxxx.1.1.num.int <172 (0xac)> + [14] #xxxx.1.1.num.int <130 (0x82)> + [15] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <51 (0x33)> + [11] #xxxx.1.1.num.int <50 (0x32)> + [12] #xxxx.1.1.num.int <66 (0x42)> + [13] #xxxx.1.1.num.int <65 (0x41)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <172 (0xac)> + [16] #xxxx.1.1.num.int <130 (0x82)> + [17] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <51 (0x33)> + [8] #xxxx.1.1.num.int <50 (0x32)> + [9] #xxxx.1.1.num.int <66 (0x42)> + [10] #xxxx.1.1.num.int <65 (0x41)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <172 (0xac)> + [13] #xxxx.1.1.num.int <130 (0x82)> + [14] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> diff --git a/tests/0008_forall/code.log.ref b/tests/0008_forall/code.log.ref new file mode 100644 index 0000000..4770e60 --- /dev/null +++ b/tests/0008_forall/code.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 word 68 66 6f 72 61 6c 6c forall + 2 5 0x0001a word 18 5b [ + 6 0x0001c word 18 5d ] + 7 0x0001e code 16 { + 8 0x0001f prim 13 } + 9 0x00020 word 68 66 6f 72 61 6c 6c forall + 3 10 0x00027 word 18 28 ( + 11 0x00029 word 18 29 ) + 12 0x0002b code 16 { + 13 0x0002c prim 13 } + 14 0x0002d word 68 66 6f 72 61 6c 6c forall + 4 15 0x00034 word 18 5b [ + 16 0x00036 int 81 0a 10 + 17 0x00038 int 81 14 20 + 18 0x0003a int 81 1e 30 + 19 0x0003c word 18 5d ] + 20 0x0003e code 16 { + 21 0x0003f prim 13 } + 22 0x00040 word 68 66 6f 72 61 6c 6c forall + 5 23 0x00047 word 18 28 ( + 24 0x00049 str 27 61 61 "aa" + 25 0x0004c int 81 64 100 + 26 0x0004e str 27 62 62 "bb" + 27 0x00051 int 91 c8 00 200 + 28 0x00054 str 27 63 63 "cc" + 29 0x00057 int 91 2c 01 300 + 30 0x0005a word 18 29 ) + 31 0x0005c code 16 { + 32 0x0005d prim 13 } + 33 0x0005e word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0008_forall/code1.log.ref b/tests/0008_forall/code1.log.ref new file mode 100644 index 0000000..f0dd0bd --- /dev/null +++ b/tests/0008_forall/code1.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 word 68 66 6f 72 61 6c 6c forall + 2 5 0x0001a word 18 5b [ + 6 0x0001c word 18 5d ] + 7 0x0001e code 16 { + 8 0x0001f prim 13 } + 9 0x00020 xref 84 0d forall + 3 10 0x00022 word 18 28 ( + 11 0x00024 word 18 29 ) + 12 0x00026 code 16 { + 13 0x00027 prim 13 } + 14 0x00028 xref 84 15 forall + 4 15 0x0002a word 18 5b [ + 16 0x0002c int 81 0a 10 + 17 0x0002e int 81 14 20 + 18 0x00030 int 81 1e 30 + 19 0x00032 word 18 5d ] + 20 0x00034 code 16 { + 21 0x00035 prim 13 } + 22 0x00036 xref 84 23 forall + 5 23 0x00038 word 18 28 ( + 24 0x0003a str 27 61 61 "aa" + 25 0x0003d int 81 64 100 + 26 0x0003f str 27 62 62 "bb" + 27 0x00042 int 91 c8 00 200 + 28 0x00045 str 27 63 63 "cc" + 29 0x00048 int 91 2c 01 300 + 30 0x0004b word 18 29 ) + 31 0x0004d code 16 { + 32 0x0004e prim 13 } + 33 0x0004f xref 84 3c forall diff --git a/tests/0008_forall/code2.log.ref b/tests/0008_forall/code2.log.ref new file mode 100644 index 0000000..b156d73 --- /dev/null +++ b/tests/0008_forall/code2.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 prim 83 0e forall + 2 5 0x00015 prim 23 [ + 6 0x00016 prim 33 ] + 7 0x00017 code 16 { + 8 0x00018 prim 13 } + 9 0x00019 prim 83 0e forall + 3 10 0x0001b prim 43 ( + 11 0x0001c prim 53 ) + 12 0x0001d code 16 { + 13 0x0001e prim 13 } + 14 0x0001f prim 83 0e forall + 4 15 0x00021 prim 23 [ + 16 0x00022 int 81 0a 10 + 17 0x00024 int 81 14 20 + 18 0x00026 int 81 1e 30 + 19 0x00028 prim 33 ] + 20 0x00029 code 16 { + 21 0x0002a prim 13 } + 22 0x0002b prim 83 0e forall + 5 23 0x0002d prim 43 ( + 24 0x0002e str 27 61 61 "aa" + 25 0x00031 int 81 64 100 + 26 0x00033 str 27 62 62 "bb" + 27 0x00036 int 91 c8 00 200 + 28 0x00039 str 27 63 63 "cc" + 29 0x0003c int 91 2c 01 300 + 30 0x0003f prim 53 ) + 31 0x00040 code 16 { + 32 0x00041 prim 13 } + 33 0x00042 prim 83 0e forall diff --git a/tests/0008_forall/main.gs b/tests/0008_forall/main.gs new file mode 100644 index 0000000..8612cb1 --- /dev/null +++ b/tests/0008_forall/main.gs @@ -0,0 +1,5 @@ +"€\nAB23" { } forall +[ ] { } forall +( ) { } forall +[ 10 20 30 ] { } forall +( "aa" 100 "bb" 200 "cc" 300 ) { } forall diff --git a/tests/0008_forall/mem.log.ref b/tests/0008_forall/mem.log.ref new file mode 100644 index 0000000..9fd7999 --- /dev/null +++ b/tests/0008_forall/mem.log.ref @@ -0,0 +1,796 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 104] + 8: 0.00, 0x001d6adc[ 72] + 9: 188.01, 0x001d6b2c[ 56] + 10: 0.00, 0x001d6b6c[ 56] + 11: 200.01, 0x001d6bac[ 72] + 12: 187.01, 0x001d6bfc[ 144] + 13: 0.00, 0x001d6c94[14848876] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 87 e2 82 ac 0a 41 42 32 uQ..Bz.`.....AB2 + 33 16 13 68 66 6f 72 61 6c 6c 18 5b 18 5d 16 13 3..hforall.[.].. + 68 66 6f 72 61 6c 6c 18 28 18 29 16 13 68 66 6f hforall.(.)..hfo + 72 61 6c 6c 18 5b 81 0a 81 14 81 1e 18 5d 16 13 rall.[.......].. + 68 66 6f 72 61 6c 6c 18 28 27 61 61 81 64 27 62 hforall.('aa.d'b + 62 91 c8 00 27 63 63 91 2c 01 18 29 16 13 68 66 b...'cc.,..)..hf + 6f 72 61 6c 6c orall + #187.1.1.array + [ 0] #191.1.1.num.int <226 (0xe2)> + [ 1] #193.1.1.num.int <130 (0x82)> + [ 2] #194.1.1.num.int <172 (0xac)> + [ 3] #195.1.1.num.int <10 (0xa)> + [ 4] #196.1.1.num.int <65 (0x41)> + [ 5] #197.1.1.num.int <66 (0x42)> + [ 6] #198.1.1.num.int <50 (0x32)> + [ 7] #199.1.1.num.int <51 (0x33)> + [ 8] #205.1.1.num.int <10 (0xa)> + [ 9] #206.1.1.num.int <20 (0x14)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [12] #212.1.1.num.int <100 (0x64)> + [13] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [14] #214.1.1.num.int <200 (0xc8)> + [15] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [16] #216.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x65 (0x65) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <226 (0xe2)> + #193.1.1.num.int <130 (0x82)> + #194.1.1.num.int <172 (0xac)> + #195.1.1.num.int <10 (0xa)> + #196.1.1.num.int <65 (0x41)> + #197.1.1.num.int <66 (0x42)> + #198.1.1.num.int <50 (0x32)> + #199.1.1.num.int <51 (0x33)> + #200.1.1.array + #205.1.1.num.int <10 (0xa)> + #206.1.1.num.int <20 (0x14)> + #207.1.1.num.int <30 (0x1e)> + #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + 61 61 aa + #212.1.1.num.int <100 (0x64)> + #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + 62 62 bb + #214.1.1.num.int <200 (0xc8)> + #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + 63 63 cc + #216.1.1.num.int <300 (0x12c)> diff --git a/tests/0008_forall/screen.log.ref b/tests/0008_forall/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0008_forall/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0008_forall/trace.log.ref b/tests/0008_forall/trace.log.ref new file mode 100644 index 0000000..a0d7d9c --- /dev/null +++ b/tests/0008_forall/trace.log.ref @@ -0,0 +1,672 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 7, 9[8] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x9, size 8, "€ AB23"> +IP: #186:0x11, type 6, 18[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x12, size 1> + [1] #189.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x9, size 8, "€ AB23"> +IP: #186:0x13, type 8, 20[6] +GC: ++#190.1.1.mem.code.ro +GC: ++#189.1.1.mem.str.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.str.ro +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <130 (0x82)> + [1] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <172 (0xac)> + [1] #193.1.1.num.int <130 (0x82)> + [2] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <172 (0xac)> + [2] #193.1.1.num.int <130 (0x82)> + [3] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <65 (0x41)> + [1] #195.1.1.num.int <10 (0xa)> + [2] #194.1.1.num.int <172 (0xac)> + [3] #193.1.1.num.int <130 (0x82)> + [4] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <66 (0x42)> + [1] #196.1.1.num.int <65 (0x41)> + [2] #195.1.1.num.int <10 (0xa)> + [3] #194.1.1.num.int <172 (0xac)> + [4] #193.1.1.num.int <130 (0x82)> + [5] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <50 (0x32)> + [1] #197.1.1.num.int <66 (0x42)> + [2] #196.1.1.num.int <65 (0x41)> + [3] #195.1.1.num.int <10 (0xa)> + [4] #194.1.1.num.int <172 (0xac)> + [5] #193.1.1.num.int <130 (0x82)> + [6] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#192.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#189.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1a, type 8, 27[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1c, type 8, 29[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.array + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1e, type 6, 31[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x1f, size 1> + [1] #201.1.1.array + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x20, type 8, 33[6] +GC: --#202.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#201.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x29, type 8, 42[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.hash + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x2b, type 6, 44[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x2c, size 1> + [1] #203.1.1.hash + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x2d, type 8, 46[6] +GC: --#204.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#203.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x34, type 8, 53[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x36, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <20 (0x14)> + [1] #205.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3a, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #206.1.1.num.int <20 (0x14)> + [2] #205.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3c, type 8, 61[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.array + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3e, type 6, 63[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x3f, size 1> + [1] #208.1.1.array + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x40, type 8, 65[6] +GC: ++#205.1.1.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#208.1.1.array +GC: --#209.1.2.mem.code.ro +GC: --#208.1.2.array +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.2.num.int <10 (0xa)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#206.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <20 (0x14)> + [1] #205.1.2.num.int <10 (0xa)> + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#207.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <30 (0x1e)> + [1] #206.1.2.num.int <20 (0x14)> + [2] #205.1.2.num.int <10 (0xa)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#208.1.1.array +GC: --#186.1.2.mem.ro +GC: --#205.1.2.num.int +GC: --#206.1.2.num.int +GC: --#207.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #206.1.1.num.int <20 (0x14)> + [2] #205.1.1.num.int <10 (0xa)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x47, type 8, 72[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #206.1.1.num.int <20 (0x14)> + [3] #205.1.1.num.int <10 (0xa)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x49, type 7, 74[2] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4a, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x4c, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <100 (0x64)> + [1] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4a, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #206.1.1.num.int <20 (0x14)> + [5] #205.1.1.num.int <10 (0xa)> + [6] #199.1.1.num.int <51 (0x33)> + [7] #198.1.1.num.int <50 (0x32)> + [8] #197.1.1.num.int <66 (0x42)> + [9] #196.1.1.num.int <65 (0x41)> + [10] #195.1.1.num.int <10 (0xa)> + [11] #194.1.1.num.int <172 (0xac)> + [12] #193.1.1.num.int <130 (0x82)> + [13] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x4e, type 7, 79[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4f, size 2, "bb"> + [1] #212.1.1.num.int <100 (0x64)> + [2] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #206.1.1.num.int <20 (0x14)> + [6] #205.1.1.num.int <10 (0xa)> + [7] #199.1.1.num.int <51 (0x33)> + [8] #198.1.1.num.int <50 (0x32)> + [9] #197.1.1.num.int <66 (0x42)> + [10] #196.1.1.num.int <65 (0x41)> + [11] #195.1.1.num.int <10 (0xa)> + [12] #194.1.1.num.int <172 (0xac)> + [13] #193.1.1.num.int <130 (0x82)> + [14] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x51, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <200 (0xc8)> + [1] #213.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4f, size 2, "bb"> + [2] #212.1.1.num.int <100 (0x64)> + [3] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #206.1.1.num.int <20 (0x14)> + [7] #205.1.1.num.int <10 (0xa)> + [8] #199.1.1.num.int <51 (0x33)> + [9] #198.1.1.num.int <50 (0x32)> + [10] #197.1.1.num.int <66 (0x42)> + [11] #196.1.1.num.int <65 (0x41)> + [12] #195.1.1.num.int <10 (0xa)> + [13] #194.1.1.num.int <172 (0xac)> + [14] #193.1.1.num.int <130 (0x82)> + [15] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x54, type 7, 85[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [1] #214.1.1.num.int <200 (0xc8)> + [2] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [3] #212.1.1.num.int <100 (0x64)> + [4] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x57, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <300 (0x12c)> + [1] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.1.num.int <200 (0xc8)> + [3] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.1.num.int <100 (0x64)> + [5] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #206.1.1.num.int <20 (0x14)> + [9] #205.1.1.num.int <10 (0xa)> + [10] #199.1.1.num.int <51 (0x33)> + [11] #198.1.1.num.int <50 (0x32)> + [12] #197.1.1.num.int <66 (0x42)> + [13] #196.1.1.num.int <65 (0x41)> + [14] #195.1.1.num.int <10 (0xa)> + [15] #194.1.1.num.int <172 (0xac)> + [16] #193.1.1.num.int <130 (0x82)> + [17] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5a, type 8, 91[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.hash + [1] #207.1.1.num.int <30 (0x1e)> + [2] #206.1.1.num.int <20 (0x14)> + [3] #205.1.1.num.int <10 (0xa)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5c, type 6, 93[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x5d, size 1> + [1] #217.1.1.hash + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5e, type 8, 95[6] +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +GC: ++#218.1.1.mem.code.ro +GC: ++#217.1.1.hash +GC: --#218.1.2.mem.code.ro +GC: --#217.1.2.hash +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.2.num.int <100 (0x64)> + [1] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#213.1.1.mem.str.ro +GC: ++#214.1.1.num.int +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.num.int <200 (0xc8)> + [1] #213.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4f, size 2, "bb"> + [2] #212.1.2.num.int <100 (0x64)> + [3] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #206.1.1.num.int <20 (0x14)> + [6] #205.1.1.num.int <10 (0xa)> + [7] #199.1.1.num.int <51 (0x33)> + [8] #198.1.1.num.int <50 (0x32)> + [9] #197.1.1.num.int <66 (0x42)> + [10] #196.1.1.num.int <65 (0x41)> + [11] #195.1.1.num.int <10 (0xa)> + [12] #194.1.1.num.int <172 (0xac)> + [13] #193.1.1.num.int <130 (0x82)> + [14] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#215.1.1.mem.str.ro +GC: ++#216.1.1.num.int +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <300 (0x12c)> + [1] #215.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.2.num.int <200 (0xc8)> + [3] #213.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.2.num.int <100 (0x64)> + [5] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#219.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#218.1.1.mem.code.ro +GC: --#217.1.1.hash +GC: --#186.1.5.mem.ro +GC: --#211.1.2.mem.str.ro +GC: --#212.1.2.num.int +GC: --#213.1.2.mem.str.ro +GC: --#214.1.2.num.int +GC: --#215.1.2.mem.str.ro +GC: --#216.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <300 (0x12c)> + [1] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.1.num.int <200 (0xc8)> + [3] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.1.num.int <100 (0x64)> + [5] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> diff --git a/tests/0009_func/basic.log.ref b/tests/0009_func/basic.log.ref new file mode 100644 index 0000000..0203619 --- /dev/null +++ b/tests/0009_func/basic.log.ref @@ -0,0 +1,47 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0009_func/code.log.ref b/tests/0009_func/code.log.ref new file mode 100644 index 0000000..176ae75 --- /dev/null +++ b/tests/0009_func/code.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 word 38 64 65 66 def + 2 7 0x00016 word 38 66 6f 6f foo diff --git a/tests/0009_func/code1.log.ref b/tests/0009_func/code1.log.ref new file mode 100644 index 0000000..176ae75 --- /dev/null +++ b/tests/0009_func/code1.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 word 38 64 65 66 def + 2 7 0x00016 word 38 66 6f 6f foo diff --git a/tests/0009_func/code2.log.ref b/tests/0009_func/code2.log.ref new file mode 100644 index 0000000..f1f6c7f --- /dev/null +++ b/tests/0009_func/code2.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 prim 63 def + 2 7 0x00013 word 38 66 6f 6f foo diff --git a/tests/0009_func/main.gs b/tests/0009_func/main.gs new file mode 100644 index 0000000..e28368a --- /dev/null +++ b/tests/0009_func/main.gs @@ -0,0 +1,2 @@ +/foo { 10 20 } def +foo diff --git a/tests/0009_func/mem.log.ref b/tests/0009_func/mem.log.ref new file mode 100644 index 0000000..46f2ab3 --- /dev/null +++ b/tests/0009_func/mem.log.ref @@ -0,0 +1,762 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 0.00, 0x001d6b20[ 56] + 11: 194.01, 0x001d6b60[ 72] + 12: 0.00, 0x001d6bb0[14849104] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 56 81 0a 81 uQ..Bz.`9fooV... + 14 13 38 64 65 66 38 66 6f 6f ..8def8foo + #187.1.1.array + [ 0] #192.1.1.num.int <10 (0xa)> + [ 1] #193.1.1.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x1a (0x1a) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + 81 0a 81 14 13 ..... + #192.1.1.num.int <10 (0xa)> + #193.1.1.num.int <20 (0x14)> + #194.1.1.array diff --git a/tests/0009_func/screen.log.ref b/tests/0009_func/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0009_func/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0009_func/trace.log.ref b/tests/0009_func/trace.log.ref new file mode 100644 index 0000000..93e68a7 --- /dev/null +++ b/tests/0009_func/trace.log.ref @@ -0,0 +1,55 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 13[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x16, type 8, 23[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <20 (0x14)> + [1] #192.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <20 (0x14)> + [1] #192.1.1.num.int <10 (0xa)> diff --git a/tests/0010_exit/basic.log.ref b/tests/0010_exit/basic.log.ref new file mode 100644 index 0000000..f94efe7 --- /dev/null +++ b/tests/0010_exit/basic.log.ref @@ -0,0 +1,405 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5000 (0x1388)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <5000 (0x1388)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.for + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10000 (0x2710)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50000 (0xc350)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50000 (0xc350)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0010_exit/code.log.ref b/tests/0010_exit/code.log.ref new file mode 100644 index 0000000..2e801da --- /dev/null +++ b/tests/0010_exit/code.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 26 { + 2 3 0x0000e code c6 1a { + 4 0x00010 bool 12 true + 5 0x00011 code c6 13 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 word 48 65 78 69 74 exit + 9 0x0001e int 91 30 75 30000 + 10 0x00021 int a1 40 9c 00 40000 + 11 0x00025 prim 13 } + 12 0x00026 word 28 69 66 if + 13 0x00029 prim 13 } + 14 0x0002a word 48 6c 6f 6f 70 loop + 3 15 0x0002f int a1 50 c3 00 50000 + 4 16 0x00033 prim 13 } + 17 0x00034 word 38 64 65 66 def + 6 18 0x00038 code c6 15 { + 19 0x0003a bool 12 true + 20 0x0003b code c6 0e { + 21 0x0003d int 81 0a 10 + 22 0x0003f int 81 14 20 + 23 0x00041 word 48 65 78 69 74 exit + 24 0x00046 int 81 1e 30 + 25 0x00048 int 81 28 40 + 26 0x0004a prim 13 } + 27 0x0004b word 28 69 66 if + 28 0x0004e prim 13 } + 29 0x0004f word 48 6c 6f 6f 70 loop + 7 30 0x00054 int 21 2 + 31 0x00055 code c6 18 { + 32 0x00057 bool 12 true + 33 0x00058 code c6 11 { + 34 0x0005a int 81 64 100 + 35 0x0005c int 91 c8 00 200 + 36 0x0005f word 48 65 78 69 74 exit + 37 0x00064 int 91 2c 01 300 + 38 0x00067 int 91 90 01 400 + 39 0x0006a prim 13 } + 40 0x0006b word 28 69 66 if + 41 0x0006e prim 13 } + 42 0x0006f word 68 72 65 70 65 61 74 repeat + 8 43 0x00076 int 91 e8 03 1000 + 44 0x00079 int 91 d0 07 2000 + 45 0x0007c int 91 88 13 5000 + 46 0x0007f code c6 0c { + 47 0x00081 bool 12 true + 48 0x00082 code 66 { + 49 0x00083 word 48 65 78 69 74 exit + 50 0x00088 prim 13 } + 51 0x00089 word 28 69 66 if + 52 0x0008c prim 13 } + 53 0x0008d word 38 66 6f 72 for + 9 54 0x00091 word 38 66 6f 6f foo diff --git a/tests/0010_exit/code1.log.ref b/tests/0010_exit/code1.log.ref new file mode 100644 index 0000000..6ea8b8b --- /dev/null +++ b/tests/0010_exit/code1.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 26 { + 2 3 0x0000e code c6 1a { + 4 0x00010 bool 12 true + 5 0x00011 code c6 13 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 word 48 65 78 69 74 exit + 9 0x0001e int 91 30 75 30000 + 10 0x00021 int a1 40 9c 00 40000 + 11 0x00025 prim 13 } + 12 0x00026 word 28 69 66 if + 13 0x00029 prim 13 } + 14 0x0002a word 48 6c 6f 6f 70 loop + 3 15 0x0002f int a1 50 c3 00 50000 + 4 16 0x00033 prim 13 } + 17 0x00034 word 38 64 65 66 def + 6 18 0x00038 code c6 10 { + 19 0x0003a bool 12 true + 20 0x0003b code b6 { + 21 0x0003c int 81 0a 10 + 22 0x0003e int 81 14 20 + 23 0x00040 xref 84 27 exit + 24 0x00042 int 81 1e 30 + 25 0x00044 int 81 28 40 + 26 0x00046 prim 13 } + 27 0x00047 xref 84 21 if + 28 0x00049 prim 13 } + 29 0x0004a xref 84 20 loop + 7 30 0x0004c int 21 2 + 31 0x0004d code c6 14 { + 32 0x0004f bool 12 true + 33 0x00050 code c6 0e { + 34 0x00052 int 81 64 100 + 35 0x00054 int 91 c8 00 200 + 36 0x00057 xref 84 3e exit + 37 0x00059 int 91 2c 01 300 + 38 0x0005c int 91 90 01 400 + 39 0x0005f prim 13 } + 40 0x00060 xref 84 3a if + 41 0x00062 prim 13 } + 42 0x00063 word 68 72 65 70 65 61 74 repeat + 8 43 0x0006a int 91 e8 03 1000 + 44 0x0006d int 91 d0 07 2000 + 45 0x00070 int 91 88 13 5000 + 46 0x00073 code 86 { + 47 0x00074 bool 12 true + 48 0x00075 code 36 { + 49 0x00076 xref 84 5d exit + 50 0x00078 prim 13 } + 51 0x00079 xref 84 53 if + 52 0x0007b prim 13 } + 53 0x0007c word 38 66 6f 72 for + 9 54 0x00080 word 38 66 6f 6f foo diff --git a/tests/0010_exit/code2.log.ref b/tests/0010_exit/code2.log.ref new file mode 100644 index 0000000..4ff82dd --- /dev/null +++ b/tests/0010_exit/code2.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 1f { + 2 3 0x0000e code c6 16 { + 4 0x00010 bool 12 true + 5 0x00011 code c6 10 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 prim 83 0f exit + 9 0x0001b int 91 30 75 30000 + 10 0x0001e int a1 40 9c 00 40000 + 11 0x00022 prim 13 } + 12 0x00023 prim 83 09 if + 13 0x00025 prim 13 } + 14 0x00026 prim 83 0b loop + 3 15 0x00028 int a1 50 c3 00 50000 + 4 16 0x0002c prim 13 } + 17 0x0002d prim 63 def + 6 18 0x0002e code c6 10 { + 19 0x00030 bool 12 true + 20 0x00031 code b6 { + 21 0x00032 int 81 0a 10 + 22 0x00034 int 81 14 20 + 23 0x00036 prim 83 0f exit + 24 0x00038 int 81 1e 30 + 25 0x0003a int 81 28 40 + 26 0x0003c prim 13 } + 27 0x0003d prim 83 09 if + 28 0x0003f prim 13 } + 29 0x00040 prim 83 0b loop + 7 30 0x00042 int 21 2 + 31 0x00043 code c6 14 { + 32 0x00045 bool 12 true + 33 0x00046 code c6 0e { + 34 0x00048 int 81 64 100 + 35 0x0004a int 91 c8 00 200 + 36 0x0004d prim 83 0f exit + 37 0x0004f int 91 2c 01 300 + 38 0x00052 int 91 90 01 400 + 39 0x00055 prim 13 } + 40 0x00056 prim 83 09 if + 41 0x00058 prim 13 } + 42 0x00059 prim 83 0c repeat + 8 43 0x0005b int 91 e8 03 1000 + 44 0x0005e int 91 d0 07 2000 + 45 0x00061 int 91 88 13 5000 + 46 0x00064 code 86 { + 47 0x00065 bool 12 true + 48 0x00066 code 36 { + 49 0x00067 prim 83 0f exit + 50 0x00069 prim 13 } + 51 0x0006a prim 83 09 if + 52 0x0006c prim 13 } + 53 0x0006d prim 83 0d for + 9 54 0x0006f word 38 66 6f 6f foo diff --git a/tests/0010_exit/main.gs b/tests/0010_exit/main.gs new file mode 100644 index 0000000..abf986b --- /dev/null +++ b/tests/0010_exit/main.gs @@ -0,0 +1,9 @@ +/foo { + { true { 10000 20000 exit 30000 40000 } if } loop + 50000 +} def + +{ true { 10 20 exit 30 40 } if } loop +2 { true { 100 200 exit 300 400 } if } repeat +1000 2000 5000 { true { exit } if } for +foo diff --git a/tests/0010_exit/mem.log.ref b/tests/0010_exit/mem.log.ref new file mode 100644 index 0000000..f9803ec --- /dev/null +++ b/tests/0010_exit/mem.log.ref @@ -0,0 +1,784 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 152] + 8: 187.01, 0x001d6b0c[ 72] + 9: 188.01, 0x001d6b5c[ 56] + 10: 0.00, 0x001d6b9c[ 120] + 11: 196.01, 0x001d6c1c[ 72] + 12: 0.00, 0x001d6c6c[14848916] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f c6 26 c6 1a uQ..Bz.`9foo.&.. + 12 c6 13 91 10 27 91 20 4e 48 65 78 69 74 91 30 .....'. NHexit.0 + 75 a1 40 9c 00 13 28 69 66 13 48 6c 6f 6f 70 a1 u.@...(if.Hloop. + 50 c3 00 13 38 64 65 66 c6 15 12 c6 0e 81 0a 81 P...8def........ + 14 48 65 78 69 74 81 1e 81 28 13 28 69 66 13 48 .Hexit...(.(if.H + 6c 6f 6f 70 21 c6 18 12 c6 11 81 64 91 c8 00 48 loop!......d...H + 65 78 69 74 91 2c 01 91 90 01 13 28 69 66 13 68 exit.,.....(if.h + 72 65 70 65 61 74 91 e8 03 91 d0 07 91 88 13 c6 repeat.......... + 0c 12 66 48 65 78 69 74 13 28 69 66 13 38 66 6f ..fHexit.(if.8fo + 72 38 66 6f 6f r8foo + #187.1.1.array + [ 0] #197.1.1.num.int <10 (0xa)> + [ 1] #198.1.1.num.int <20 (0x14)> + [ 2] #205.1.1.num.int <100 (0x64)> + [ 3] #206.1.1.num.int <200 (0xc8)> + [ 4] #207.1.1.num.int <1000 (0x3e8)> + [ 5] #221.1.1.num.int <10000 (0x2710)> + [ 6] #222.1.1.num.int <20000 (0x4e20)> + [ 7] #223.1.1.num.int <50000 (0xc350)> + #188.1.1.ctx.func + type 17, ip 0x95 (0x95) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + c6 1a 12 c6 13 91 10 27 91 20 4e 48 65 78 69 74 .......'. NHexit + 91 30 75 a1 40 9c 00 13 28 69 66 13 48 6c 6f 6f .0u.@...(if.Hloo + 70 a1 50 c3 00 13 p.P... + #196.1.1.array + #197.1.1.num.int <10 (0xa)> + #198.1.1.num.int <20 (0x14)> + #205.1.1.num.int <100 (0x64)> + #206.1.1.num.int <200 (0xc8)> + #207.1.1.num.int <1000 (0x3e8)> + #221.1.1.num.int <10000 (0x2710)> + #222.1.1.num.int <20000 (0x4e20)> + #223.1.1.num.int <50000 (0xc350)> diff --git a/tests/0010_exit/screen.log.ref b/tests/0010_exit/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0010_exit/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0010_exit/trace.log.ref b/tests/0010_exit/trace.log.ref new file mode 100644 index 0000000..8db9ff3 --- /dev/null +++ b/tests/0010_exit/trace.log.ref @@ -0,0 +1,446 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 14[38] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x34, type 8, 53[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x38, type 6, 58[21] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x3a, size 21> +IP: #186:0x4f, type 8, 80[4] +GC: ++#191.1.1.mem.code.ro +GC: --#191.1.2.mem.code.ro +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x0, type 2, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> +IP: #191:0x1, type 6, 3[14] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x3d, size 14> + [1] #193.1.1.num.bool <1 (0x1)> +IP: #191:0x11, type 8, 18[2] +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.1.num.bool +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #194:0x0, type 1, 10 (0xa) +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <10 (0xa)> +IP: #194:0x2, type 1, 20 (0x14) +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #194:0x4, type 8, 5[4] +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.block +GC: --#192.1.1.ctx.loop +GC: --#194.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#191.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #186:0x54, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <2 (0x2)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #186:0x55, type 6, 87[24] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x57, size 24> + [1] #199.1.1.num.int <2 (0x2)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #186:0x6f, type 8, 112[6] +GC: ++#200.1.1.mem.code.ro +GC: --#200.1.2.mem.code.ro +GC: --#199.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #200:0x0, type 2, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #200:0x1, type 6, 3[17] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x5a, size 17> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #200:0x14, type 8, 21[2] +GC: ++#203.1.1.mem.code.ro +GC: --#203.1.2.mem.code.ro +GC: --#202.1.1.num.bool +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 1, 100 (0x64) +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #203:0x2, type 1, 200 (0xc8) +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #203:0x5, type 8, 6[4] +GC: ++#188.1.1.ctx.func +GC: --#204.1.1.ctx.block +GC: --#201.1.1.ctx.repeat +GC: --#203.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#200.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #186:0x76, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #186:0x79, type 1, 2000 (0x7d0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <2000 (0x7d0)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #186:0x7c, type 1, 5000 (0x1388) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <5000 (0x1388)> + [1] #208.1.1.num.int <2000 (0x7d0)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #186:0x7f, type 6, 129[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x81, size 12> + [1] #209.1.1.num.int <5000 (0x1388)> + [2] #208.1.1.num.int <2000 (0x7d0)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> +IP: #186:0x8d, type 8, 142[3] +GC: ++#210.1.1.mem.code.ro +GC: --#210.1.2.mem.code.ro +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #210:0x0, type 2, 1 (0x1) +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #210:0x1, type 6, 2[6] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x83, size 6> + [1] #212.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #210:0x8, type 8, 9[2] +GC: ++#213.1.1.mem.code.ro +GC: --#213.1.2.mem.code.ro +GC: --#212.1.1.num.bool +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.for + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #213:0x0, type 8, 1[4] +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#211.1.1.ctx.for +GC: --#213.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#210.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #186:0x91, type 8, 146[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 6, 2[26] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x10, size 26> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #190:0x1c, type 8, 29[4] +GC: ++#216.1.1.mem.code.ro +GC: --#216.1.2.mem.code.ro +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #216:0x0, type 2, 1 (0x1) +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #216:0x1, type 6, 3[19] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x13, size 19> + [1] #218.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #216:0x16, type 8, 23[2] +GC: ++#219.1.1.mem.code.ro +GC: --#219.1.2.mem.code.ro +GC: --#218.1.1.num.bool +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #219:0x0, type 1, 10000 (0x2710) +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10000 (0x2710)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #219:0x3, type 1, 20000 (0x4e20) +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <20000 (0x4e20)> + [1] #221.1.1.num.int <10000 (0x2710)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #219:0x6, type 8, 7[4] +GC: ++#215.1.1.ctx.func +GC: --#220.1.1.ctx.block +GC: --#217.1.1.ctx.loop +GC: --#219.1.1.mem.code.ro +GC: --#215.1.2.ctx.func +GC: --#216.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <20000 (0x4e20)> + [1] #221.1.1.num.int <10000 (0x2710)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #190:0x21, type 1, 50000 (0xc350) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <50000 (0xc350)> + [1] #222.1.1.num.int <20000 (0x4e20)> + [2] #221.1.1.num.int <10000 (0x2710)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> +IP: #190:0x25, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#215.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <50000 (0xc350)> + [1] #222.1.1.num.int <20000 (0x4e20)> + [2] #221.1.1.num.int <10000 (0x2710)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> diff --git a/tests/0011_return/basic.log.ref b/tests/0011_return/basic.log.ref new file mode 100644 index 0000000..7c7ba0b --- /dev/null +++ b/tests/0011_return/basic.log.ref @@ -0,0 +1,1370 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_4"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_5"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "foo_5"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <40 (0x28)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <40 (0x28)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.num.int <2000 (0x7d0)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1000 (0x3e8)> + [8] #xxxx.1.1.num.int <200 (0xc8)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <40 (0x28)> + [11] #xxxx.1.1.num.int <30 (0x1e)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.2.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10000 (0x2710)> + [1] #xxxx.1.2.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.2.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <2000 (0x7d0)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1000 (0x3e8)> + [8] #xxxx.1.1.num.int <200 (0xc8)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <40 (0x28)> + [11] #xxxx.1.1.num.int <30 (0x1e)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <20000 (0x4e20)> + [3] #xxxx.1.1.num.int <10000 (0x2710)> + [4] #xxxx.1.2.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <2000 (0x7d0)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <1000 (0x3e8)> + [9] #xxxx.1.1.num.int <200 (0xc8)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <40 (0x28)> + [12] #xxxx.1.1.num.int <30 (0x1e)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <20000 (0x4e20)> + [3] #xxxx.1.1.num.int <10000 (0x2710)> + [4] #xxxx.1.2.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <2000 (0x7d0)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <1000 (0x3e8)> + [9] #xxxx.1.1.num.int <200 (0xc8)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <40 (0x28)> + [12] #xxxx.1.1.num.int <30 (0x1e)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.15.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <30000 (0x7530)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <20000 (0x4e20)> + [7] #xxxx.1.1.num.int <10000 (0x2710)> + [8] #xxxx.1.2.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <2000 (0x7d0)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> + [12] #xxxx.1.1.num.int <1000 (0x3e8)> + [13] #xxxx.1.1.num.int <200 (0xc8)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <40 (0x28)> + [16] #xxxx.1.1.num.int <30 (0x1e)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <30000 (0x7530)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <20000 (0x4e20)> + [7] #xxxx.1.1.num.int <10000 (0x2710)> + [8] #xxxx.1.2.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <2000 (0x7d0)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> + [12] #xxxx.1.1.num.int <1000 (0x3e8)> + [13] #xxxx.1.1.num.int <200 (0xc8)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <40 (0x28)> + [16] #xxxx.1.1.num.int <30 (0x1e)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <30000 (0x7530)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <20000 (0x4e20)> + [8] #xxxx.1.1.num.int <10000 (0x2710)> + [9] #xxxx.1.2.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <2000 (0x7d0)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> + [13] #xxxx.1.1.num.int <1000 (0x3e8)> + [14] #xxxx.1.1.num.int <200 (0xc8)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <40 (0x28)> + [17] #xxxx.1.1.num.int <30 (0x1e)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.15.mem.ro +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <30000 (0x7530)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <20000 (0x4e20)> + [8] #xxxx.1.1.num.int <10000 (0x2710)> + [9] #xxxx.1.2.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <2000 (0x7d0)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> + [13] #xxxx.1.1.num.int <1000 (0x3e8)> + [14] #xxxx.1.1.num.int <200 (0xc8)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <40 (0x28)> + [17] #xxxx.1.1.num.int <30 (0x1e)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40000 (0x9c40)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <30000 (0x7530)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <20000 (0x4e20)> + [9] #xxxx.1.1.num.int <10000 (0x2710)> + [10] #xxxx.1.2.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <2000 (0x7d0)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> + [14] #xxxx.1.1.num.int <1000 (0x3e8)> + [15] #xxxx.1.1.num.int <200 (0xc8)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <40 (0x28)> + [18] #xxxx.1.1.num.int <30 (0x1e)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40000 (0x9c40)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <30000 (0x7530)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <20000 (0x4e20)> + [9] #xxxx.1.1.num.int <10000 (0x2710)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <2000 (0x7d0)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> + [14] #xxxx.1.1.num.int <1000 (0x3e8)> + [15] #xxxx.1.1.num.int <200 (0xc8)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <40 (0x28)> + [18] #xxxx.1.1.num.int <30 (0x1e)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <40000 (0x9c40)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <30000 (0x7530)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <20000 (0x4e20)> + [10] #xxxx.1.1.num.int <10000 (0x2710)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <2000 (0x7d0)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> + [15] #xxxx.1.1.num.int <1000 (0x3e8)> + [16] #xxxx.1.1.num.int <200 (0xc8)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <40 (0x28)> + [19] #xxxx.1.1.num.int <30 (0x1e)> + [20] #xxxx.1.1.num.int <5 (0x5)> + [21] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <8 (0x8)> + [1] #xxxx.2.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <40000 (0x9c40)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <30000 (0x7530)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <20000 (0x4e20)> + [11] #xxxx.1.1.num.int <10000 (0x2710)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <2000 (0x7d0)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> + [16] #xxxx.1.1.num.int <1000 (0x3e8)> + [17] #xxxx.1.1.num.int <200 (0xc8)> + [18] #xxxx.1.1.num.int <100 (0x64)> + [19] #xxxx.1.1.num.int <40 (0x28)> + [20] #xxxx.1.1.num.int <30 (0x1e)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <8 (0x8)> + [1] #xxxx.2.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <40000 (0x9c40)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <30000 (0x7530)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <20000 (0x4e20)> + [11] #xxxx.1.1.num.int <10000 (0x2710)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <2000 (0x7d0)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> + [16] #xxxx.1.1.num.int <1000 (0x3e8)> + [17] #xxxx.1.1.num.int <200 (0xc8)> + [18] #xxxx.1.1.num.int <100 (0x64)> + [19] #xxxx.1.1.num.int <40 (0x28)> + [20] #xxxx.1.1.num.int <30 (0x1e)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <4 (0x4)> diff --git a/tests/0011_return/code.log.ref b/tests/0011_return/code.log.ref new file mode 100644 index 0000000..93505f2 --- /dev/null +++ b/tests/0011_return/code.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code b6 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 word 68 72 65 74 75 72 6e return + 6 0x00018 int 61 6 + 3 7 0x00019 prim 13 } + 8 0x0001a word 38 64 65 66 def + 5 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 code c6 15 { + 6 11 0x00026 bool 12 true + 12 0x00027 code c6 0e { + 13 0x00029 int 81 1e 30 + 14 0x0002b int 81 28 40 + 15 0x0002d word 68 72 65 74 75 72 6e return + 16 0x00034 int 81 32 50 + 17 0x00036 prim 13 } + 18 0x00037 word 28 69 66 if + 7 19 0x0003a prim 13 } + 20 0x0003b word 38 64 65 66 def + 9 21 0x0003f ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00045 code c6 1f { + 10 23 0x00047 code c6 17 { + 24 0x00049 bool 12 true + 25 0x0004a code c6 10 { + 26 0x0004c int 81 64 100 + 27 0x0004e int 91 c8 00 200 + 28 0x00051 word 68 72 65 74 75 72 6e return + 29 0x00058 int 91 2c 01 300 + 30 0x0005b prim 13 } + 31 0x0005c word 28 69 66 if + 32 0x0005f prim 13 } + 33 0x00060 word 48 6c 6f 6f 70 loop + 11 34 0x00065 prim 13 } + 35 0x00066 word 38 64 65 66 def + 13 36 0x0006a ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x00070 code c6 29 { + 14 38 0x00072 int 21 2 + 39 0x00073 code c6 1e { + 40 0x00075 bool 12 true + 41 0x00076 code c6 17 { + 42 0x00078 int 91 e8 03 1000 + 43 0x0007b word 58 66 6f 6f 5f 31 foo_1 + 44 0x00081 int 91 d0 07 2000 + 45 0x00084 word 68 72 65 74 75 72 6e return + 46 0x0008b int 91 b8 0b 3000 + 47 0x0008e prim 13 } + 48 0x0008f word 28 69 66 if + 49 0x00092 prim 13 } + 50 0x00093 word 68 72 65 70 65 61 74 repeat + 15 51 0x0009a prim 13 } + 52 0x0009b word 38 64 65 66 def + 17 53 0x0009f ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x000a5 code c6 3d { + 18 55 0x000a7 word 18 5b [ + 56 0x000a9 int 11 1 + 57 0x000aa int 21 2 + 58 0x000ab int 31 3 + 59 0x000ac word 18 5d ] + 60 0x000ae code c6 28 { + 61 0x000b0 bool 12 true + 62 0x000b1 code c6 21 { + 63 0x000b3 int 91 10 27 10000 + 64 0x000b6 int 91 20 4e 20000 + 65 0x000b9 word 58 66 6f 6f 5f 31 foo_1 + 66 0x000bf int 91 30 75 30000 + 67 0x000c2 word 58 66 6f 6f 5f 34 foo_4 + 68 0x000c8 int a1 40 9c 00 40000 + 69 0x000cc word 68 72 65 74 75 72 6e return + 70 0x000d3 prim 13 } + 71 0x000d4 word 28 69 66 if + 72 0x000d7 prim 13 } + 73 0x000d8 word 68 66 6f 72 61 6c 6c forall + 19 74 0x000df int a1 50 c3 00 50000 + 20 75 0x000e3 prim 13 } + 76 0x000e4 word 38 64 65 66 def + 22 77 0x000e8 word 58 66 6f 6f 5f 31 foo_1 + 23 78 0x000ee word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000f4 word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000fa word 58 66 6f 6f 5f 34 foo_4 + 26 81 0x00100 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x00106 int 71 7 + 83 0x00107 int 81 08 8 + 84 0x00109 word 68 72 65 74 75 72 6e return + 85 0x00110 int 81 09 9 diff --git a/tests/0011_return/code1.log.ref b/tests/0011_return/code1.log.ref new file mode 100644 index 0000000..ff107ae --- /dev/null +++ b/tests/0011_return/code1.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code b6 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 word 68 72 65 74 75 72 6e return + 6 0x00018 int 61 6 + 3 7 0x00019 prim 13 } + 8 0x0001a word 38 64 65 66 def + 5 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 code c6 0f { + 6 11 0x00026 bool 12 true + 12 0x00027 code 96 { + 13 0x00028 int 81 1e 30 + 14 0x0002a int 81 28 40 + 15 0x0002c xref 84 1b return + 16 0x0002e int 81 32 50 + 17 0x00030 prim 13 } + 18 0x00031 word 28 69 66 if + 7 19 0x00034 prim 13 } + 20 0x00035 xref 84 1b def + 9 21 0x00037 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x0003d code c6 18 { + 10 23 0x0003f code c6 10 { + 24 0x00041 bool 12 true + 25 0x00042 code b6 { + 26 0x00043 int 81 64 100 + 27 0x00045 int 91 c8 00 200 + 28 0x00048 xref 84 37 return + 29 0x0004a int 91 2c 01 300 + 30 0x0004d prim 13 } + 31 0x0004e xref 84 1d if + 32 0x00050 prim 13 } + 33 0x00051 word 48 6c 6f 6f 70 loop + 11 34 0x00056 prim 13 } + 35 0x00057 xref 84 3d def + 13 36 0x00059 ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x0005f code c6 23 { + 14 38 0x00061 int 21 2 + 39 0x00062 code c6 18 { + 40 0x00064 bool 12 true + 41 0x00065 code c6 12 { + 42 0x00067 int 91 e8 03 1000 + 43 0x0006a word 58 66 6f 6f 5f 31 foo_1 + 44 0x00070 int 91 d0 07 2000 + 45 0x00073 xref 84 62 return + 46 0x00075 int 91 b8 0b 3000 + 47 0x00078 prim 13 } + 48 0x00079 xref 84 48 if + 49 0x0007b prim 13 } + 50 0x0007c word 68 72 65 70 65 61 74 repeat + 15 51 0x00083 prim 13 } + 52 0x00084 xref 84 6a def + 17 53 0x00086 ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x0008c code c6 33 { + 18 55 0x0008e word 18 5b [ + 56 0x00090 int 11 1 + 57 0x00091 int 21 2 + 58 0x00092 int 31 3 + 59 0x00093 word 18 5d ] + 60 0x00095 code c6 1e { + 61 0x00097 bool 12 true + 62 0x00098 code c6 18 { + 63 0x0009a int 91 10 27 10000 + 64 0x0009d int 91 20 4e 20000 + 65 0x000a0 xref 84 36 foo_1 + 66 0x000a2 int 91 30 75 30000 + 67 0x000a5 word 58 66 6f 6f 5f 34 foo_4 + 68 0x000ab int a1 40 9c 00 40000 + 69 0x000af xref 84 9e return + 70 0x000b1 prim 13 } + 71 0x000b2 xref 84 81 if + 72 0x000b4 prim 13 } + 73 0x000b5 word 68 66 6f 72 61 6c 6c forall + 19 74 0x000bc int a1 50 c3 00 50000 + 20 75 0x000c0 prim 13 } + 76 0x000c1 xref 84 a7 def + 22 77 0x000c3 xref 84 59 foo_1 + 23 78 0x000c5 word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000cb word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000d1 xref 84 2c foo_4 + 26 81 0x000d3 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x000d9 int 71 7 + 83 0x000da int 81 08 8 + 84 0x000dc xref 84 cb return + 85 0x000de int 81 09 9 diff --git a/tests/0011_return/code2.log.ref b/tests/0011_return/code2.log.ref new file mode 100644 index 0000000..f3cf543 --- /dev/null +++ b/tests/0011_return/code2.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 66 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 prim 83 10 return + 6 0x00013 int 61 6 + 3 7 0x00014 prim 13 } + 8 0x00015 prim 63 def + 5 9 0x00016 ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x0001c code c6 0e { + 6 11 0x0001e bool 12 true + 12 0x0001f code 96 { + 13 0x00020 int 81 1e 30 + 14 0x00022 int 81 28 40 + 15 0x00024 prim 83 10 return + 16 0x00026 int 81 32 50 + 17 0x00028 prim 13 } + 18 0x00029 prim 83 09 if + 7 19 0x0002b prim 13 } + 20 0x0002c prim 63 def + 9 21 0x0002d ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00033 code c6 15 { + 10 23 0x00035 code c6 10 { + 24 0x00037 bool 12 true + 25 0x00038 code b6 { + 26 0x00039 int 81 64 100 + 27 0x0003b int 91 c8 00 200 + 28 0x0003e prim 83 10 return + 29 0x00040 int 91 2c 01 300 + 30 0x00043 prim 13 } + 31 0x00044 prim 83 09 if + 32 0x00046 prim 13 } + 33 0x00047 prim 83 0b loop + 11 34 0x00049 prim 13 } + 35 0x0004a prim 63 def + 13 36 0x0004b ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x00051 code c6 1e { + 14 38 0x00053 int 21 2 + 39 0x00054 code c6 18 { + 40 0x00056 bool 12 true + 41 0x00057 code c6 12 { + 42 0x00059 int 91 e8 03 1000 + 43 0x0005c word 58 66 6f 6f 5f 31 foo_1 + 44 0x00062 int 91 d0 07 2000 + 45 0x00065 prim 83 10 return + 46 0x00067 int 91 b8 0b 3000 + 47 0x0006a prim 13 } + 48 0x0006b prim 83 09 if + 49 0x0006d prim 13 } + 50 0x0006e prim 83 0c repeat + 15 51 0x00070 prim 13 } + 52 0x00071 prim 63 def + 17 53 0x00072 ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x00078 code c6 2c { + 18 55 0x0007a prim 23 [ + 56 0x0007b int 11 1 + 57 0x0007c int 21 2 + 58 0x0007d int 31 3 + 59 0x0007e prim 33 ] + 60 0x0007f code c6 1e { + 61 0x00081 bool 12 true + 62 0x00082 code c6 18 { + 63 0x00084 int 91 10 27 10000 + 64 0x00087 int 91 20 4e 20000 + 65 0x0008a xref 84 2e foo_1 + 66 0x0008c int 91 30 75 30000 + 67 0x0008f word 58 66 6f 6f 5f 34 foo_4 + 68 0x00095 int a1 40 9c 00 40000 + 69 0x00099 prim 83 10 return + 70 0x0009b prim 13 } + 71 0x0009c prim 83 09 if + 72 0x0009e prim 13 } + 73 0x0009f prim 83 0e forall + 19 74 0x000a1 int a1 50 c3 00 50000 + 20 75 0x000a5 prim 13 } + 76 0x000a6 prim 63 def + 22 77 0x000a7 xref 84 4b foo_1 + 23 78 0x000a9 word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000af word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000b5 xref 84 26 foo_4 + 26 81 0x000b7 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x000bd int 71 7 + 83 0x000be int 81 08 8 + 84 0x000c0 prim 83 10 return + 85 0x000c2 int 81 09 9 diff --git a/tests/0011_return/main.gs b/tests/0011_return/main.gs new file mode 100644 index 0000000..1be6f8d --- /dev/null +++ b/tests/0011_return/main.gs @@ -0,0 +1,28 @@ +/foo_1 { + 4 5 return 6 +} def + +/foo_2 { + true { 30 40 return 50 } if +} def + +/foo_3 { + { true { 100 200 return 300 } if } loop +} def + +/foo_4 { + 2 { true { 1000 foo_1 2000 return 3000 } if } repeat +} def + +/foo_5 { + [ 1 2 3 ] { true { 10000 20000 foo_1 30000 foo_4 40000 return } if } forall + 50000 +} def + +foo_1 +foo_2 +foo_3 +foo_4 +foo_5 + +7 8 return 9 diff --git a/tests/0011_return/mem.log.ref b/tests/0011_return/mem.log.ref new file mode 100644 index 0000000..2b10980 --- /dev/null +++ b/tests/0011_return/mem.log.ref @@ -0,0 +1,841 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 276] + 8: 0.00, 0x001d6b88[ 200] + 9: 202.01, 0x001d6c58[ 72] + 10: 0.00, 0x001d6ca8[ 212] + 11: 187.01, 0x001d6d84[ 144] + 12: 0.00, 0x001d6e1c[14848484] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.1.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> => #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 11> + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_2"> => #192.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x26, size 21> + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x40, size 5, "foo_3"> => #194.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x47, size 31> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6b, size 5, "foo_4"> => #196.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x72, size 41> + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> => #198.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xa7, size 61> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.10.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 b6 41 uQ..Bz.`Yfoo_1.A + 51 68 72 65 74 75 72 6e 61 13 38 64 65 66 59 66 Qhreturna.8defYf + 6f 6f 5f 32 c6 15 12 c6 0e 81 1e 81 28 68 72 65 oo_2........(hre + 74 75 72 6e 81 32 13 28 69 66 13 38 64 65 66 59 turn.2.(if.8defY + 66 6f 6f 5f 33 c6 1f c6 17 12 c6 10 81 64 91 c8 foo_3........d.. + 00 68 72 65 74 75 72 6e 91 2c 01 13 28 69 66 13 .hreturn.,..(if. + 48 6c 6f 6f 70 13 38 64 65 66 59 66 6f 6f 5f 34 Hloop.8defYfoo_4 + c6 29 21 c6 1e 12 c6 17 91 e8 03 58 66 6f 6f 5f .)!........Xfoo_ + 31 91 d0 07 68 72 65 74 75 72 6e 91 b8 0b 13 28 1...hreturn....( + 69 66 13 68 72 65 70 65 61 74 13 38 64 65 66 59 if.hrepeat.8defY + 66 6f 6f 5f 35 c6 3d 18 5b 11 21 31 18 5d c6 28 foo_5.=.[.!1.].( + 12 c6 21 91 10 27 91 20 4e 58 66 6f 6f 5f 31 91 ..!..'. NXfoo_1. + 30 75 58 66 6f 6f 5f 34 a1 40 9c 00 68 72 65 74 0uXfoo_4.@..hret + 75 72 6e 13 28 69 66 13 68 66 6f 72 61 6c 6c a1 urn.(if.hforall. + 50 c3 00 13 38 64 65 66 58 66 6f 6f 5f 31 58 66 P...8defXfoo_1Xf + 6f 6f 5f 32 58 66 6f 6f 5f 33 58 66 6f 6f 5f 34 oo_2Xfoo_3Xfoo_4 + 58 66 6f 6f 5f 35 71 81 08 68 72 65 74 75 72 6e Xfoo_5q..hreturn + 81 09 .. + #187.1.1.array + [ 0] #200.1.1.num.int <4 (0x4)> + [ 1] #201.1.1.num.int <5 (0x5)> + [ 2] #207.1.1.num.int <30 (0x1e)> + [ 3] #208.1.1.num.int <40 (0x28)> + [ 4] #215.1.1.num.int <100 (0x64)> + [ 5] #216.1.1.num.int <200 (0xc8)> + [ 6] #224.1.1.num.int <1000 (0x3e8)> + [ 7] #226.1.1.num.int <4 (0x4)> + [ 8] #227.1.1.num.int <5 (0x5)> + [ 9] #228.1.1.num.int <2000 (0x7d0)> + [10] #230.1.1.num.int <1 (0x1)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #240.1.1.num.int <20000 (0x4e20)> + [13] #242.1.1.num.int <4 (0x4)> + [14] #243.1.1.num.int <5 (0x5)> + [15] #244.1.1.num.int <30000 (0x7530)> + [16] #252.1.1.num.int <1000 (0x3e8)> + [17] #254.1.1.num.int <4 (0x4)> + [18] #255.1.1.num.int <5 (0x5)> + [19] #256.1.1.num.int <2000 (0x7d0)> + [20] #257.1.1.num.int <40000 (0x9c40)> + [21] #199.2.1.num.int <7 (0x7)> + [22] #203.2.1.num.int <8 (0x8)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 11> + 41 51 68 72 65 74 75 72 6e 61 13 AQhreturna. + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #192.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x26, size 21> + 12 c6 0e 81 1e 81 28 68 72 65 74 75 72 6e 81 32 ......(hreturn.2 + 13 28 69 66 13 .(if. + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x40, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #194.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x47, size 31> + c6 17 12 c6 10 81 64 91 c8 00 68 72 65 74 75 72 ......d...hretur + 6e 91 2c 01 13 28 69 66 13 48 6c 6f 6f 70 13 n.,..(if.Hloop. + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6b, size 5, "foo_4"> + 66 6f 6f 5f 34 foo_4 + #196.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x72, size 41> + 21 c6 1e 12 c6 17 91 e8 03 58 66 6f 6f 5f 31 91 !........Xfoo_1. + d0 07 68 72 65 74 75 72 6e 91 b8 0b 13 28 69 66 ..hreturn....(if + 13 68 72 65 70 65 61 74 13 .hrepeat. + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> + 66 6f 6f 5f 35 foo_5 + #198.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xa7, size 61> + 18 5b 11 21 31 18 5d c6 28 12 c6 21 91 10 27 91 .[.!1.].(..!..'. + 20 4e 58 66 6f 6f 5f 31 91 30 75 58 66 6f 6f 5f NXfoo_1.0uXfoo_ + 34 a1 40 9c 00 68 72 65 74 75 72 6e 13 28 69 66 4.@..hreturn.(if + 13 68 66 6f 72 61 6c 6c a1 50 c3 00 13 .hforall.P... + #199.2.1.num.int <7 (0x7)> + #200.1.1.num.int <4 (0x4)> + #201.1.1.num.int <5 (0x5)> + #202.1.1.array + #203.2.1.num.int <8 (0x8)> + #207.1.1.num.int <30 (0x1e)> + #208.1.1.num.int <40 (0x28)> + #215.1.1.num.int <100 (0x64)> + #216.1.1.num.int <200 (0xc8)> + #224.1.1.num.int <1000 (0x3e8)> + #226.1.1.num.int <4 (0x4)> + #227.1.1.num.int <5 (0x5)> + #228.1.1.num.int <2000 (0x7d0)> + #230.1.1.num.int <1 (0x1)> + #239.1.1.num.int <10000 (0x2710)> + #240.1.1.num.int <20000 (0x4e20)> + #242.1.1.num.int <4 (0x4)> + #243.1.1.num.int <5 (0x5)> + #244.1.1.num.int <30000 (0x7530)> + #252.1.1.num.int <1000 (0x3e8)> + #254.1.1.num.int <4 (0x4)> + #255.1.1.num.int <5 (0x5)> + #256.1.1.num.int <2000 (0x7d0)> + #257.1.1.num.int <40000 (0x9c40)> diff --git a/tests/0011_return/screen.log.ref b/tests/0011_return/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0011_return/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0011_return/trace.log.ref b/tests/0011_return/trace.log.ref new file mode 100644 index 0000000..85f3d75 --- /dev/null +++ b/tests/0011_return/trace.log.ref @@ -0,0 +1,1457 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 6, 15[11] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xf, size 11> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x24, type 6, 38[21] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x26, size 21> + [1] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3b, type 8, 60[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3f, type 9, 64[5] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x40, size 5, "foo_3"> +IP: #186:0x45, type 6, 71[31] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x47, size 31> + [1] #193.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x40, size 5, "foo_3"> +IP: #186:0x66, type 8, 103[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6a, type 9, 107[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x6b, size 5, "foo_4"> +IP: #186:0x70, type 6, 114[41] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x72, size 41> + [1] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x6b, size 5, "foo_4"> +IP: #186:0x9b, type 8, 156[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#196.1.1.mem.code.ro +GC: --#196.1.2.mem.code.ro +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x9f, type 9, 160[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> +IP: #186:0xa5, type 6, 167[61] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xa7, size 61> + [1] #197.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xa0, size 5, "foo_5"> +IP: #186:0xe4, type 8, 229[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#198.1.1.mem.code.ro +GC: --#198.1.2.mem.code.ro +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe8, type 8, 233[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#188.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #186:0xee, type 8, 239[5] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #192:0x0, type 2, 1 (0x1) +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.int <5 (0x5)> + [2] #200.1.1.num.int <4 (0x4)> +IP: #192:0x1, type 6, 3[14] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x29, size 14> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #192:0x11, type 8, 18[2] +GC: ++#205.1.1.mem.code.ro +GC: --#205.1.2.mem.code.ro +GC: --#204.1.1.num.bool +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #205:0x0, type 1, 30 (0x1e) +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #201.1.1.num.int <5 (0x5)> + [2] #200.1.1.num.int <4 (0x4)> +IP: #205:0x2, type 1, 40 (0x28) +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #205:0x4, type 8, 5[6] +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.block +GC: --#203.1.1.ctx.func +GC: --#205.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #186:0xf4, type 8, 245[5] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #194:0x0, type 6, 2[23] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x49, size 23> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #194:0x19, type 8, 26[4] +GC: ++#210.1.1.mem.code.ro +GC: --#210.1.2.mem.code.ro +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #210:0x0, type 2, 1 (0x1) +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.bool <1 (0x1)> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #210:0x1, type 6, 3[16] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x4c, size 16> + [1] #212.1.1.num.bool <1 (0x1)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #210:0x13, type 8, 20[2] +GC: ++#213.1.1.mem.code.ro +GC: --#213.1.2.mem.code.ro +GC: --#212.1.1.num.bool +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #213:0x0, type 1, 100 (0x64) +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <100 (0x64)> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #213:0x2, type 1, 200 (0xc8) +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #213:0x5, type 8, 6[6] +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#211.1.1.ctx.loop +GC: --#213.1.1.mem.code.ro +GC: --#209.1.1.ctx.func +GC: --#210.1.1.mem.code.ro +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #186:0xfa, type 8, 251[5] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #196:0x0, type 1, 2 (0x2) +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <2 (0x2)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #196:0x1, type 6, 3[30] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x75, size 30> + [1] #218.1.1.num.int <2 (0x2)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #196:0x21, type 8, 34[6] +GC: ++#219.1.1.mem.code.ro +GC: --#219.1.2.mem.code.ro +GC: --#218.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #219:0x0, type 2, 1 (0x1) +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #219:0x1, type 6, 3[23] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x78, size 23> + [1] #221.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #219:0x1a, type 8, 27[2] +GC: ++#222.1.1.mem.code.ro +GC: --#222.1.2.mem.code.ro +GC: --#221.1.1.num.bool +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #222:0x0, type 1, 1000 (0x3e8) +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <1000 (0x3e8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #222:0x3, type 8, 4[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <1000 (0x3e8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <4 (0x4)> + [1] #224.1.1.num.int <1000 (0x3e8)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <5 (0x5)> + [1] #226.1.1.num.int <4 (0x4)> + [2] #224.1.1.num.int <1000 (0x3e8)> + [3] #216.1.1.num.int <200 (0xc8)> + [4] #215.1.1.num.int <100 (0x64)> + [5] #208.1.1.num.int <40 (0x28)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #201.1.1.num.int <5 (0x5)> + [8] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#223.1.1.ctx.block +GC: --#225.1.1.ctx.func +GC: --#223.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <5 (0x5)> + [1] #226.1.1.num.int <4 (0x4)> + [2] #224.1.1.num.int <1000 (0x3e8)> + [3] #216.1.1.num.int <200 (0xc8)> + [4] #215.1.1.num.int <100 (0x64)> + [5] #208.1.1.num.int <40 (0x28)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #201.1.1.num.int <5 (0x5)> + [8] #200.1.1.num.int <4 (0x4)> +IP: #222:0x9, type 1, 2000 (0x7d0) +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #222:0xc, type 8, 13[6] +GC: ++#188.1.1.ctx.func +GC: --#223.1.1.ctx.block +GC: --#220.1.1.ctx.repeat +GC: --#222.1.1.mem.code.ro +GC: --#217.1.1.ctx.func +GC: --#219.1.1.mem.code.ro +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #186:0x100, type 8, 257[5] +GC: ++#198.1.1.mem.code.ro +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #198:0x0, type 8, 1[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #198:0x2, type 1, 1 (0x1) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #198:0x3, type 1, 2 (0x2) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <2 (0x2)> + [1] #230.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #198:0x4, type 1, 3 (0x3) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <3 (0x3)> + [1] #231.1.1.num.int <2 (0x2)> + [2] #230.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #228.1.1.num.int <2000 (0x7d0)> + [5] #227.1.1.num.int <5 (0x5)> + [6] #226.1.1.num.int <4 (0x4)> + [7] #224.1.1.num.int <1000 (0x3e8)> + [8] #216.1.1.num.int <200 (0xc8)> + [9] #215.1.1.num.int <100 (0x64)> + [10] #208.1.1.num.int <40 (0x28)> + [11] #207.1.1.num.int <30 (0x1e)> + [12] #201.1.1.num.int <5 (0x5)> + [13] #200.1.1.num.int <4 (0x4)> +IP: #198:0x5, type 8, 6[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.array + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #198:0x7, type 6, 9[40] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0xb0, size 40> + [1] #233.1.1.array + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #198:0x31, type 8, 50[6] +GC: ++#230.1.1.num.int +GC: ++#234.1.1.mem.code.ro +GC: ++#233.1.1.array +GC: --#234.1.2.mem.code.ro +GC: --#233.1.2.array +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.2.num.int <1 (0x1)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #234:0x0, type 2, 1 (0x1) +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.bool <1 (0x1)> + [1] #230.1.2.num.int <1 (0x1)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #234:0x1, type 6, 3[33] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0xb3, size 33> + [1] #236.1.1.num.bool <1 (0x1)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #234:0x24, type 8, 37[2] +GC: ++#237.1.1.mem.code.ro +GC: --#237.1.2.mem.code.ro +GC: --#236.1.1.num.bool +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.2.num.int <1 (0x1)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #237:0x0, type 1, 10000 (0x2710) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <10000 (0x2710)> + [1] #230.1.2.num.int <1 (0x1)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #237:0x3, type 1, 20000 (0x4e20) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <20000 (0x4e20)> + [1] #239.1.1.num.int <10000 (0x2710)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #237:0x6, type 8, 7[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <20000 (0x4e20)> + [1] #239.1.1.num.int <10000 (0x2710)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <4 (0x4)> + [1] #240.1.1.num.int <20000 (0x4e20)> + [2] #239.1.1.num.int <10000 (0x2710)> + [3] #230.1.2.num.int <1 (0x1)> + [4] #228.1.1.num.int <2000 (0x7d0)> + [5] #227.1.1.num.int <5 (0x5)> + [6] #226.1.1.num.int <4 (0x4)> + [7] #224.1.1.num.int <1000 (0x3e8)> + [8] #216.1.1.num.int <200 (0xc8)> + [9] #215.1.1.num.int <100 (0x64)> + [10] #208.1.1.num.int <40 (0x28)> + [11] #207.1.1.num.int <30 (0x1e)> + [12] #201.1.1.num.int <5 (0x5)> + [13] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <5 (0x5)> + [1] #242.1.1.num.int <4 (0x4)> + [2] #240.1.1.num.int <20000 (0x4e20)> + [3] #239.1.1.num.int <10000 (0x2710)> + [4] #230.1.2.num.int <1 (0x1)> + [5] #228.1.1.num.int <2000 (0x7d0)> + [6] #227.1.1.num.int <5 (0x5)> + [7] #226.1.1.num.int <4 (0x4)> + [8] #224.1.1.num.int <1000 (0x3e8)> + [9] #216.1.1.num.int <200 (0xc8)> + [10] #215.1.1.num.int <100 (0x64)> + [11] #208.1.1.num.int <40 (0x28)> + [12] #207.1.1.num.int <30 (0x1e)> + [13] #201.1.1.num.int <5 (0x5)> + [14] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#238.1.1.ctx.block +GC: --#241.1.1.ctx.func +GC: --#238.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <5 (0x5)> + [1] #242.1.1.num.int <4 (0x4)> + [2] #240.1.1.num.int <20000 (0x4e20)> + [3] #239.1.1.num.int <10000 (0x2710)> + [4] #230.1.2.num.int <1 (0x1)> + [5] #228.1.1.num.int <2000 (0x7d0)> + [6] #227.1.1.num.int <5 (0x5)> + [7] #226.1.1.num.int <4 (0x4)> + [8] #224.1.1.num.int <1000 (0x3e8)> + [9] #216.1.1.num.int <200 (0xc8)> + [10] #215.1.1.num.int <100 (0x64)> + [11] #208.1.1.num.int <40 (0x28)> + [12] #207.1.1.num.int <30 (0x1e)> + [13] #201.1.1.num.int <5 (0x5)> + [14] #200.1.1.num.int <4 (0x4)> +IP: #237:0xc, type 1, 30000 (0x7530) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #237:0xf, type 8, 16[5] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #196:0x0, type 1, 2 (0x2) +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <2 (0x2)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #196:0x1, type 6, 3[30] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x75, size 30> + [1] #246.1.1.num.int <2 (0x2)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #196:0x21, type 8, 34[6] +GC: ++#247.1.1.mem.code.ro +GC: --#247.1.2.mem.code.ro +GC: --#246.1.1.num.int +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #247:0x0, type 2, 1 (0x1) +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.bool <1 (0x1)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #247:0x1, type 6, 3[23] +GC: ++#186.1.14.mem.ro +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.mem.code.ro <#186.1.15.mem.ro, ofs 0x78, size 23> + [1] #249.1.1.num.bool <1 (0x1)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #247:0x1a, type 8, 27[2] +GC: ++#250.1.1.mem.code.ro +GC: --#250.1.2.mem.code.ro +GC: --#249.1.1.num.bool +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #250:0x0, type 1, 1000 (0x3e8) +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1000 (0x3e8)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #250:0x3, type 8, 4[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1000 (0x3e8)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <4 (0x4)> + [1] #252.1.1.num.int <1000 (0x3e8)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <5 (0x5)> + [1] #254.1.1.num.int <4 (0x4)> + [2] #252.1.1.num.int <1000 (0x3e8)> + [3] #244.1.1.num.int <30000 (0x7530)> + [4] #243.1.1.num.int <5 (0x5)> + [5] #242.1.1.num.int <4 (0x4)> + [6] #240.1.1.num.int <20000 (0x4e20)> + [7] #239.1.1.num.int <10000 (0x2710)> + [8] #230.1.2.num.int <1 (0x1)> + [9] #228.1.1.num.int <2000 (0x7d0)> + [10] #227.1.1.num.int <5 (0x5)> + [11] #226.1.1.num.int <4 (0x4)> + [12] #224.1.1.num.int <1000 (0x3e8)> + [13] #216.1.1.num.int <200 (0xc8)> + [14] #215.1.1.num.int <100 (0x64)> + [15] #208.1.1.num.int <40 (0x28)> + [16] #207.1.1.num.int <30 (0x1e)> + [17] #201.1.1.num.int <5 (0x5)> + [18] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#251.1.1.ctx.block +GC: --#253.1.1.ctx.func +GC: --#251.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <5 (0x5)> + [1] #254.1.1.num.int <4 (0x4)> + [2] #252.1.1.num.int <1000 (0x3e8)> + [3] #244.1.1.num.int <30000 (0x7530)> + [4] #243.1.1.num.int <5 (0x5)> + [5] #242.1.1.num.int <4 (0x4)> + [6] #240.1.1.num.int <20000 (0x4e20)> + [7] #239.1.1.num.int <10000 (0x2710)> + [8] #230.1.2.num.int <1 (0x1)> + [9] #228.1.1.num.int <2000 (0x7d0)> + [10] #227.1.1.num.int <5 (0x5)> + [11] #226.1.1.num.int <4 (0x4)> + [12] #224.1.1.num.int <1000 (0x3e8)> + [13] #216.1.1.num.int <200 (0xc8)> + [14] #215.1.1.num.int <100 (0x64)> + [15] #208.1.1.num.int <40 (0x28)> + [16] #207.1.1.num.int <30 (0x1e)> + [17] #201.1.1.num.int <5 (0x5)> + [18] #200.1.1.num.int <4 (0x4)> +IP: #250:0x9, type 1, 2000 (0x7d0) +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <2000 (0x7d0)> + [1] #255.1.1.num.int <5 (0x5)> + [2] #254.1.1.num.int <4 (0x4)> + [3] #252.1.1.num.int <1000 (0x3e8)> + [4] #244.1.1.num.int <30000 (0x7530)> + [5] #243.1.1.num.int <5 (0x5)> + [6] #242.1.1.num.int <4 (0x4)> + [7] #240.1.1.num.int <20000 (0x4e20)> + [8] #239.1.1.num.int <10000 (0x2710)> + [9] #230.1.2.num.int <1 (0x1)> + [10] #228.1.1.num.int <2000 (0x7d0)> + [11] #227.1.1.num.int <5 (0x5)> + [12] #226.1.1.num.int <4 (0x4)> + [13] #224.1.1.num.int <1000 (0x3e8)> + [14] #216.1.1.num.int <200 (0xc8)> + [15] #215.1.1.num.int <100 (0x64)> + [16] #208.1.1.num.int <40 (0x28)> + [17] #207.1.1.num.int <30 (0x1e)> + [18] #201.1.1.num.int <5 (0x5)> + [19] #200.1.1.num.int <4 (0x4)> +IP: #250:0xc, type 8, 13[6] +GC: ++#238.1.1.ctx.block +GC: --#251.1.1.ctx.block +GC: --#248.1.1.ctx.repeat +GC: --#250.1.1.mem.code.ro +GC: --#245.1.1.ctx.func +GC: --#247.1.1.mem.code.ro +GC: --#186.1.15.mem.ro +GC: --#238.1.2.ctx.block +GC: --#196.1.2.mem.code.ro +GC: --#186.1.14.mem.ro +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <2000 (0x7d0)> + [1] #255.1.1.num.int <5 (0x5)> + [2] #254.1.1.num.int <4 (0x4)> + [3] #252.1.1.num.int <1000 (0x3e8)> + [4] #244.1.1.num.int <30000 (0x7530)> + [5] #243.1.1.num.int <5 (0x5)> + [6] #242.1.1.num.int <4 (0x4)> + [7] #240.1.1.num.int <20000 (0x4e20)> + [8] #239.1.1.num.int <10000 (0x2710)> + [9] #230.1.2.num.int <1 (0x1)> + [10] #228.1.1.num.int <2000 (0x7d0)> + [11] #227.1.1.num.int <5 (0x5)> + [12] #226.1.1.num.int <4 (0x4)> + [13] #224.1.1.num.int <1000 (0x3e8)> + [14] #216.1.1.num.int <200 (0xc8)> + [15] #215.1.1.num.int <100 (0x64)> + [16] #208.1.1.num.int <40 (0x28)> + [17] #207.1.1.num.int <30 (0x1e)> + [18] #201.1.1.num.int <5 (0x5)> + [19] #200.1.1.num.int <4 (0x4)> +IP: #237:0x15, type 1, 40000 (0x9c40) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <40000 (0x9c40)> + [1] #256.1.1.num.int <2000 (0x7d0)> + [2] #255.1.1.num.int <5 (0x5)> + [3] #254.1.1.num.int <4 (0x4)> + [4] #252.1.1.num.int <1000 (0x3e8)> + [5] #244.1.1.num.int <30000 (0x7530)> + [6] #243.1.1.num.int <5 (0x5)> + [7] #242.1.1.num.int <4 (0x4)> + [8] #240.1.1.num.int <20000 (0x4e20)> + [9] #239.1.1.num.int <10000 (0x2710)> + [10] #230.1.2.num.int <1 (0x1)> + [11] #228.1.1.num.int <2000 (0x7d0)> + [12] #227.1.1.num.int <5 (0x5)> + [13] #226.1.1.num.int <4 (0x4)> + [14] #224.1.1.num.int <1000 (0x3e8)> + [15] #216.1.1.num.int <200 (0xc8)> + [16] #215.1.1.num.int <100 (0x64)> + [17] #208.1.1.num.int <40 (0x28)> + [18] #207.1.1.num.int <30 (0x1e)> + [19] #201.1.1.num.int <5 (0x5)> + [20] #200.1.1.num.int <4 (0x4)> +IP: #237:0x19, type 8, 26[6] +GC: ++#188.1.1.ctx.func +GC: --#238.1.1.ctx.block +GC: --#235.1.1.ctx.forall +GC: --#237.1.1.mem.code.ro +GC: --#229.1.1.ctx.func +GC: --#234.1.1.mem.code.ro +GC: --#233.1.1.array +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#198.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +GC: --#230.1.2.num.int +GC: --#231.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <40000 (0x9c40)> + [1] #256.1.1.num.int <2000 (0x7d0)> + [2] #255.1.1.num.int <5 (0x5)> + [3] #254.1.1.num.int <4 (0x4)> + [4] #252.1.1.num.int <1000 (0x3e8)> + [5] #244.1.1.num.int <30000 (0x7530)> + [6] #243.1.1.num.int <5 (0x5)> + [7] #242.1.1.num.int <4 (0x4)> + [8] #240.1.1.num.int <20000 (0x4e20)> + [9] #239.1.1.num.int <10000 (0x2710)> + [10] #230.1.1.num.int <1 (0x1)> + [11] #228.1.1.num.int <2000 (0x7d0)> + [12] #227.1.1.num.int <5 (0x5)> + [13] #226.1.1.num.int <4 (0x4)> + [14] #224.1.1.num.int <1000 (0x3e8)> + [15] #216.1.1.num.int <200 (0xc8)> + [16] #215.1.1.num.int <100 (0x64)> + [17] #208.1.1.num.int <40 (0x28)> + [18] #207.1.1.num.int <30 (0x1e)> + [19] #201.1.1.num.int <5 (0x5)> + [20] #200.1.1.num.int <4 (0x4)> +IP: #186:0x106, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <7 (0x7)> + [1] #257.1.1.num.int <40000 (0x9c40)> + [2] #256.1.1.num.int <2000 (0x7d0)> + [3] #255.1.1.num.int <5 (0x5)> + [4] #254.1.1.num.int <4 (0x4)> + [5] #252.1.1.num.int <1000 (0x3e8)> + [6] #244.1.1.num.int <30000 (0x7530)> + [7] #243.1.1.num.int <5 (0x5)> + [8] #242.1.1.num.int <4 (0x4)> + [9] #240.1.1.num.int <20000 (0x4e20)> + [10] #239.1.1.num.int <10000 (0x2710)> + [11] #230.1.1.num.int <1 (0x1)> + [12] #228.1.1.num.int <2000 (0x7d0)> + [13] #227.1.1.num.int <5 (0x5)> + [14] #226.1.1.num.int <4 (0x4)> + [15] #224.1.1.num.int <1000 (0x3e8)> + [16] #216.1.1.num.int <200 (0xc8)> + [17] #215.1.1.num.int <100 (0x64)> + [18] #208.1.1.num.int <40 (0x28)> + [19] #207.1.1.num.int <30 (0x1e)> + [20] #201.1.1.num.int <5 (0x5)> + [21] #200.1.1.num.int <4 (0x4)> +IP: #186:0x107, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <8 (0x8)> + [1] #199.2.1.num.int <7 (0x7)> + [2] #257.1.1.num.int <40000 (0x9c40)> + [3] #256.1.1.num.int <2000 (0x7d0)> + [4] #255.1.1.num.int <5 (0x5)> + [5] #254.1.1.num.int <4 (0x4)> + [6] #252.1.1.num.int <1000 (0x3e8)> + [7] #244.1.1.num.int <30000 (0x7530)> + [8] #243.1.1.num.int <5 (0x5)> + [9] #242.1.1.num.int <4 (0x4)> + [10] #240.1.1.num.int <20000 (0x4e20)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #230.1.1.num.int <1 (0x1)> + [13] #228.1.1.num.int <2000 (0x7d0)> + [14] #227.1.1.num.int <5 (0x5)> + [15] #226.1.1.num.int <4 (0x4)> + [16] #224.1.1.num.int <1000 (0x3e8)> + [17] #216.1.1.num.int <200 (0xc8)> + [18] #215.1.1.num.int <100 (0x64)> + [19] #208.1.1.num.int <40 (0x28)> + [20] #207.1.1.num.int <30 (0x1e)> + [21] #201.1.1.num.int <5 (0x5)> + [22] #200.1.1.num.int <4 (0x4)> +IP: #186:0x109, type 8, 266[6] +GC: --#188.1.1.ctx.func +GC: --#186.1.11.mem.ro +GC: --#4.1.2.hash +== backtrace == +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <8 (0x8)> + [1] #199.2.1.num.int <7 (0x7)> + [2] #257.1.1.num.int <40000 (0x9c40)> + [3] #256.1.1.num.int <2000 (0x7d0)> + [4] #255.1.1.num.int <5 (0x5)> + [5] #254.1.1.num.int <4 (0x4)> + [6] #252.1.1.num.int <1000 (0x3e8)> + [7] #244.1.1.num.int <30000 (0x7530)> + [8] #243.1.1.num.int <5 (0x5)> + [9] #242.1.1.num.int <4 (0x4)> + [10] #240.1.1.num.int <20000 (0x4e20)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #230.1.1.num.int <1 (0x1)> + [13] #228.1.1.num.int <2000 (0x7d0)> + [14] #227.1.1.num.int <5 (0x5)> + [15] #226.1.1.num.int <4 (0x4)> + [16] #224.1.1.num.int <1000 (0x3e8)> + [17] #216.1.1.num.int <200 (0xc8)> + [18] #215.1.1.num.int <100 (0x64)> + [19] #208.1.1.num.int <40 (0x28)> + [20] #207.1.1.num.int <30 (0x1e)> + [21] #201.1.1.num.int <5 (0x5)> + [22] #200.1.1.num.int <4 (0x4)> diff --git a/tests/0012_get/basic.log.ref b/tests/0012_get/basic.log.ref new file mode 100644 index 0000000..0e042da --- /dev/null +++ b/tests/0012_get/basic.log.ref @@ -0,0 +1,744 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.2.array + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.2.array + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #0.0.nil + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #xxxx.1.2.array + [2] #0.0.nil + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <40 (0x28)> + [5] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <40 (0x28)> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4 (0xfffffffffffffffc)> + [1] #xxxx.1.2.array + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_3"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-11 (0xfffffffffffffff5)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.1.num.int <53 (0x35)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #0.0.nil + [8] #xxxx.1.2.num.int <22 (0x16)> + [9] #xxxx.1.3.num.int <10 (0xa)> + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.3.num.int <40 (0x28)> + [14] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> diff --git a/tests/0012_get/code.log.ref b/tests/0012_get/code.log.ref new file mode 100644 index 0000000..a0c8e15 --- /dev/null +++ b/tests/0012_get/code.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 word 38 67 65 74 get + 4 12 0x00029 word 58 66 6f 6f 5f 31 foo_1 + 13 0x0002f int 31 3 + 14 0x00030 word 38 67 65 74 get + 5 15 0x00034 word 58 66 6f 6f 5f 31 foo_1 + 16 0x0003a int 41 4 + 17 0x0003b word 38 67 65 74 get + 6 18 0x0003f word 58 66 6f 6f 5f 31 foo_1 + 19 0x00045 int 81 fb -5 + 20 0x00047 word 38 67 65 74 get + 7 21 0x0004b word 58 66 6f 6f 5f 31 foo_1 + 22 0x00051 int 81 ff -1 + 23 0x00053 word 38 67 65 74 get + 8 24 0x00057 word 58 66 6f 6f 5f 31 foo_1 + 25 0x0005d int 81 fc -4 + 26 0x0005f word 38 67 65 74 get + 10 27 0x00063 ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x00069 word 18 28 ( + 29 0x0006b str 27 61 61 "aa" + 30 0x0006e int 81 0b 11 + 31 0x00070 str 27 62 62 "bb" + 32 0x00073 int 81 16 22 + 33 0x00075 str 27 63 63 "cc" + 34 0x00078 int 81 21 33 + 35 0x0007a word 18 29 ) + 36 0x0007c word 38 64 65 66 def + 12 37 0x00080 word 58 66 6f 6f 5f 32 foo_2 + 38 0x00086 str 27 62 62 "bb" + 39 0x00089 word 38 67 65 74 get + 13 40 0x0008d word 58 66 6f 6f 5f 32 foo_2 + 41 0x00093 str 27 64 64 "dd" + 42 0x00096 word 38 67 65 74 get + 15 43 0x0009a ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x000a0 str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x000ab word 38 64 65 66 def + 17 46 0x000af word 58 66 6f 6f 5f 33 foo_3 + 47 0x000b5 int 01 0 + 48 0x000b6 word 38 67 65 74 get + 18 49 0x000ba word 58 66 6f 6f 5f 33 foo_3 + 50 0x000c0 int 81 09 9 + 51 0x000c2 word 38 67 65 74 get + 19 52 0x000c6 word 58 66 6f 6f 5f 33 foo_3 + 53 0x000cc int 81 0a 10 + 54 0x000ce word 38 67 65 74 get + 20 55 0x000d2 word 58 66 6f 6f 5f 33 foo_3 + 56 0x000d8 int 81 f5 -11 + 57 0x000da word 38 67 65 74 get + 21 58 0x000de word 58 66 6f 6f 5f 33 foo_3 + 59 0x000e4 int 81 ff -1 + 60 0x000e6 word 38 67 65 74 get + 22 61 0x000ea word 58 66 6f 6f 5f 33 foo_3 + 62 0x000f0 int 81 f6 -10 + 63 0x000f2 word 38 67 65 74 get diff --git a/tests/0012_get/code1.log.ref b/tests/0012_get/code1.log.ref new file mode 100644 index 0000000..37d7cc3 --- /dev/null +++ b/tests/0012_get/code1.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 word 38 67 65 74 get + 4 12 0x00029 xref 84 0b foo_1 + 13 0x0002b int 31 3 + 14 0x0002c xref 74 get + 5 15 0x0002d xref 84 0f foo_1 + 16 0x0002f int 41 4 + 17 0x00030 xref 84 0b get + 6 18 0x00032 xref 84 14 foo_1 + 19 0x00034 int 81 fb -5 + 20 0x00036 xref 84 11 get + 7 21 0x00038 xref 84 1a foo_1 + 22 0x0003a int 81 ff -1 + 23 0x0003c xref 84 17 get + 8 24 0x0003e xref 84 20 foo_1 + 25 0x00040 int 81 fc -4 + 26 0x00042 xref 84 1d get + 10 27 0x00044 ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x0004a word 18 28 ( + 29 0x0004c str 27 61 61 "aa" + 30 0x0004f int 81 0b 11 + 31 0x00051 str 27 62 62 "bb" + 32 0x00054 int 81 16 22 + 33 0x00056 str 27 63 63 "cc" + 34 0x00059 int 81 21 33 + 35 0x0005b word 18 29 ) + 36 0x0005d xref 84 43 def + 12 37 0x0005f word 58 66 6f 6f 5f 32 foo_2 + 38 0x00065 xref 84 14 "bb" + 39 0x00067 xref 84 42 get + 13 40 0x00069 xref 84 0a foo_2 + 41 0x0006b str 27 64 64 "dd" + 42 0x0006e xref 84 49 get + 15 43 0x00070 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x00076 str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x00081 xref 84 67 def + 17 46 0x00083 word 58 66 6f 6f 5f 33 foo_3 + 47 0x00089 int 01 0 + 48 0x0008a xref 84 65 get + 18 49 0x0008c xref 84 09 foo_3 + 50 0x0008e int 81 09 9 + 51 0x00090 xref 84 6b get + 19 52 0x00092 xref 84 0f foo_3 + 53 0x00094 int 81 0a 10 + 54 0x00096 xref 84 71 get + 20 55 0x00098 xref 84 15 foo_3 + 56 0x0009a int 81 f5 -11 + 57 0x0009c xref 84 77 get + 21 58 0x0009e xref 84 1b foo_3 + 59 0x000a0 int 81 ff -1 + 60 0x000a2 xref 84 7d get + 22 61 0x000a4 xref 84 21 foo_3 + 62 0x000a6 int 81 f6 -10 + 63 0x000a8 xref 84 83 get diff --git a/tests/0012_get/code2.log.ref b/tests/0012_get/code2.log.ref new file mode 100644 index 0000000..52c1d78 --- /dev/null +++ b/tests/0012_get/code2.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 word 58 66 6f 6f 5f 31 foo_1 + 10 0x0001f int 01 0 + 11 0x00020 prim 83 12 get + 4 12 0x00022 xref 84 09 foo_1 + 13 0x00024 int 31 3 + 14 0x00025 prim 83 12 get + 5 15 0x00027 xref 84 0e foo_1 + 16 0x00029 int 41 4 + 17 0x0002a prim 83 12 get + 6 18 0x0002c xref 84 13 foo_1 + 19 0x0002e int 81 fb -5 + 20 0x00030 prim 83 12 get + 7 21 0x00032 xref 84 19 foo_1 + 22 0x00034 int 81 ff -1 + 23 0x00036 prim 83 12 get + 8 24 0x00038 xref 84 1f foo_1 + 25 0x0003a int 81 fc -4 + 26 0x0003c prim 83 12 get + 10 27 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x00044 prim 43 ( + 29 0x00045 str 27 61 61 "aa" + 30 0x00048 int 81 0b 11 + 31 0x0004a str 27 62 62 "bb" + 32 0x0004d int 81 16 22 + 33 0x0004f str 27 63 63 "cc" + 34 0x00052 int 81 21 33 + 35 0x00054 prim 53 ) + 36 0x00055 prim 63 def + 12 37 0x00056 word 58 66 6f 6f 5f 32 foo_2 + 38 0x0005c xref 84 12 "bb" + 39 0x0005e prim 83 12 get + 13 40 0x00060 xref 84 0a foo_2 + 41 0x00062 str 27 64 64 "dd" + 42 0x00065 prim 83 12 get + 15 43 0x00067 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0006d str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x00078 prim 63 def + 17 46 0x00079 word 58 66 6f 6f 5f 33 foo_3 + 47 0x0007f int 01 0 + 48 0x00080 prim 83 12 get + 18 49 0x00082 xref 84 09 foo_3 + 50 0x00084 int 81 09 9 + 51 0x00086 prim 83 12 get + 19 52 0x00088 xref 84 0f foo_3 + 53 0x0008a int 81 0a 10 + 54 0x0008c prim 83 12 get + 20 55 0x0008e xref 84 15 foo_3 + 56 0x00090 int 81 f5 -11 + 57 0x00092 prim 83 12 get + 21 58 0x00094 xref 84 1b foo_3 + 59 0x00096 int 81 ff -1 + 60 0x00098 prim 83 12 get + 22 61 0x0009a xref 84 21 foo_3 + 62 0x0009c int 81 f6 -10 + 63 0x0009e prim 83 12 get diff --git a/tests/0012_get/main.gs b/tests/0012_get/main.gs new file mode 100644 index 0000000..7000ddb --- /dev/null +++ b/tests/0012_get/main.gs @@ -0,0 +1,22 @@ +/foo_1 [ 10 20 30 40 ] def + +foo_1 0 get +foo_1 3 get +foo_1 4 get +foo_1 -5 get +foo_1 -1 get +foo_1 -4 get + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 ) def + +foo_2 "bb" get +foo_2 "dd" get + +/foo_3 "ABCDE12345" def + +foo_3 0 get +foo_3 9 get +foo_3 10 get +foo_3 -11 get +foo_3 -1 get +foo_3 -10 get diff --git a/tests/0012_get/mem.log.ref b/tests/0012_get/mem.log.ref new file mode 100644 index 0000000..0f0073b --- /dev/null +++ b/tests/0012_get/mem.log.ref @@ -0,0 +1,819 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 248] + 8: 187.01, 0x001d6b6c[ 72] + 9: 188.01, 0x001d6bbc[ 56] + 10: 194.01, 0x001d6bfc[ 24] + 11: 196.01, 0x001d6c1c[ 72] + 12: 209.01, 0x001d6c6c[ 36] + 13: 0.00, 0x001d6c98[14848872] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #202.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x64, size 5, "foo_2"> => #209.1.1.hash + #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> => #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 58 66 .......(.]8defXf + 6f 6f 5f 31 01 38 67 65 74 58 66 6f 6f 5f 31 31 oo_1.8getXfoo_11 + 38 67 65 74 58 66 6f 6f 5f 31 41 38 67 65 74 58 8getXfoo_1A8getX + 66 6f 6f 5f 31 81 fb 38 67 65 74 58 66 6f 6f 5f foo_1..8getXfoo_ + 31 81 ff 38 67 65 74 58 66 6f 6f 5f 31 81 fc 38 1..8getXfoo_1..8 + 67 65 74 59 66 6f 6f 5f 32 18 28 27 61 61 81 0b getYfoo_2.('aa.. + 27 62 62 81 16 27 63 63 81 21 18 29 38 64 65 66 'bb..'cc.!.)8def + 58 66 6f 6f 5f 32 27 62 62 38 67 65 74 58 66 6f Xfoo_2'bb8getXfo + 6f 5f 32 27 64 64 38 67 65 74 59 66 6f 6f 5f 33 o_2'dd8getYfoo_3 + a7 41 42 43 44 45 31 32 33 34 35 38 64 65 66 58 .ABCDE123458defX + 66 6f 6f 5f 33 01 38 67 65 74 58 66 6f 6f 5f 33 foo_3.8getXfoo_3 + 81 09 38 67 65 74 58 66 6f 6f 5f 33 81 0a 38 67 ..8getXfoo_3..8g + 65 74 58 66 6f 6f 5f 33 81 f5 38 67 65 74 58 66 etXfoo_3..8getXf + 6f 6f 5f 33 81 ff 38 67 65 74 58 66 6f 6f 5f 33 oo_3..8getXfoo_3 + 81 f6 38 67 65 74 ..8get + #187.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #193.1.3.num.int <40 (0x28)> + [ 2] #0.0.nil + [ 3] #0.0.nil + [ 4] #193.1.3.num.int <40 (0x28)> + [ 5] #190.1.3.num.int <10 (0xa)> + [ 6] #206.1.2.num.int <22 (0x16)> + [ 7] #0.0.nil + [ 8] #215.1.1.num.int <65 (0x41)> + [ 9] #217.1.1.num.int <53 (0x35)> + [10] #0.0.nil + [11] #0.0.nil + [12] #221.1.1.num.int <53 (0x35)> + [13] #223.1.1.num.int <65 (0x41)> + #188.1.1.ctx.func + type 17, ip 0xf6 (0xf6) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.3.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.3.num.int <40 (0x28)> + #194.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.3.num.int <40 (0x28)> + #196.1.1.array + #202.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x64, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #203.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x6c, size 2, "aa"> + 61 61 aa + #204.1.1.num.int <11 (0xb)> + #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "bb"> + 62 62 bb + #206.1.2.num.int <22 (0x16)> + #207.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x76, size 2, "cc"> + 63 63 cc + #208.1.1.num.int <33 (0x21)> + #209.1.1.hash + #203.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x6c, size 2, "aa"> => #204.1.1.num.int <11 (0xb)> + #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "bb"> => #206.1.2.num.int <22 (0x16)> + #207.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x76, size 2, "cc"> => #208.1.1.num.int <33 (0x21)> + #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + 41 42 43 44 45 31 32 33 34 35 ABCDE12345 + #215.1.1.num.int <65 (0x41)> + #217.1.1.num.int <53 (0x35)> + #221.1.1.num.int <53 (0x35)> + #223.1.1.num.int <65 (0x41)> diff --git a/tests/0012_get/screen.log.ref b/tests/0012_get/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0012_get/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0012_get/trace.log.ref b/tests/0012_get/trace.log.ref new file mode 100644 index 0000000..3be670a --- /dev/null +++ b/tests/0012_get/trace.log.ref @@ -0,0 +1,808 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x25, type 8, 38[3] +GC: ++#190.1.1.num.int +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x29, type 8, 42[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #190.1.2.num.int <10 (0xa)> +IP: #186:0x2f, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #194.1.2.array + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x30, type 8, 49[3] +GC: ++#193.1.1.num.int +GC: --#197.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <40 (0x28)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #186:0x34, type 8, 53[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #193.1.2.num.int <40 (0x28)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3a, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <4 (0x4)> + [1] #194.1.2.array + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3b, type 8, 60[3] +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.2.num.int <40 (0x28)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3f, type 8, 64[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #0.0.nil + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x45, type 1, -5 (0xfffffffffffffffb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #194.1.2.array + [2] #0.0.nil + [3] #193.1.2.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x47, type 8, 72[3] +GC: --#199.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x4b, type 8, 76[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #0.0.nil + [2] #0.0.nil + [3] #193.1.2.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.2.num.int <40 (0x28)> + [5] #190.1.2.num.int <10 (0xa)> +IP: #186:0x53, type 8, 84[3] +GC: ++#193.1.2.num.int +GC: --#200.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.num.int <40 (0x28)> + [1] #0.0.nil + [2] #0.0.nil + [3] #193.1.3.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x57, type 8, 88[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.2.num.int <10 (0xa)> +IP: #186:0x5d, type 1, -4 (0xfffffffffffffffc) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <-4 (0xfffffffffffffffc)> + [1] #194.1.2.array + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.2.num.int <10 (0xa)> +IP: #186:0x5f, type 8, 96[3] +GC: ++#190.1.2.num.int +GC: --#201.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.3.num.int <10 (0xa)> +IP: #186:0x63, type 9, 100[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x64, size 5, "foo_2"> + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x69, type 8, 106[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #202.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x64, size 5, "foo_2"> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x6b, type 7, 108[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x6c, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #202.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x64, size 5, "foo_2"> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0x6e, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <11 (0xb)> + [1] #203.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x6c, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #202.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x64, size 5, "foo_2"> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0x70, type 7, 113[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x71, size 2, "bb"> + [1] #204.1.1.num.int <11 (0xb)> + [2] #203.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x6c, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #202.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x64, size 5, "foo_2"> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0x73, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <22 (0x16)> + [1] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x71, size 2, "bb"> + [2] #204.1.1.num.int <11 (0xb)> + [3] #203.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x6c, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #202.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x64, size 5, "foo_2"> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0x75, type 7, 118[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x76, size 2, "cc"> + [1] #206.1.1.num.int <22 (0x16)> + [2] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x71, size 2, "bb"> + [3] #204.1.1.num.int <11 (0xb)> + [4] #203.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6c, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0x78, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <33 (0x21)> + [1] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x76, size 2, "cc"> + [2] #206.1.1.num.int <22 (0x16)> + [3] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x71, size 2, "bb"> + [4] #204.1.1.num.int <11 (0xb)> + [5] #203.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6c, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0x7a, type 8, 123[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.hash + [1] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x7c, type 8, 125[3] +GC: ++#202.1.1.mem.ref.ro +GC: ++#209.1.1.hash +GC: --#209.1.2.hash +GC: --#202.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.3.num.int <10 (0xa)> +IP: #186:0x80, type 8, 129[5] +GC: ++#209.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.hash + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x86, type 7, 135[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x87, size 2, "bb"> + [1] #209.1.2.hash + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x89, type 8, 138[3] +GC: ++#206.1.1.num.int +GC: --#210.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#209.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <22 (0x16)> + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x8d, type 8, 142[5] +GC: ++#209.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.hash + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x93, type 7, 148[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x94, size 2, "dd"> + [1] #209.1.2.hash + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0x96, type 8, 151[3] +GC: --#211.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#209.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9b, size 5, "foo_3"> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xa0, type 7, 161[10] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xab, type 8, 172[3] +GC: ++#212.1.1.mem.ref.ro +GC: ++#213.1.1.mem.str.ro +GC: --#213.1.2.mem.str.ro +GC: --#212.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0xaf, type 8, 176[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xb5, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <0 (0x0)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xb6, type 8, 183[3] +GC: --#214.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <65 (0x41)> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xba, type 8, 187[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #215.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc0, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <9 (0x9)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc2, type 8, 195[3] +GC: --#216.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <53 (0x35)> + [1] #215.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc6, type 8, 199[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #217.1.1.num.int <53 (0x35)> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xcc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <10 (0xa)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xce, type 8, 207[3] +GC: --#218.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #217.1.1.num.int <53 (0x35)> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xd2, type 8, 211[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xd8, type 1, -11 (0xfffffffffffffff5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-11 (0xfffffffffffffff5)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xda, type 8, 219[3] +GC: --#219.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xde, type 8, 223[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xe4, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0xe6, type 8, 231[3] +GC: --#220.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <53 (0x35)> + [1] #0.0.nil + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xea, type 8, 235[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #221.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0xf0, type 1, -10 (0xfffffffffffffff6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #221.1.1.num.int <53 (0x35)> + [3] #0.0.nil + [4] #0.0.nil + [5] #217.1.1.num.int <53 (0x35)> + [6] #215.1.1.num.int <65 (0x41)> + [7] #0.0.nil + [8] #206.1.2.num.int <22 (0x16)> + [9] #190.1.3.num.int <10 (0xa)> + [10] #193.1.3.num.int <40 (0x28)> + [11] #0.0.nil + [12] #0.0.nil + [13] #193.1.3.num.int <40 (0x28)> + [14] #190.1.3.num.int <10 (0xa)> +IP: #186:0xf2, type 8, 243[3] +GC: --#222.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <65 (0x41)> + [1] #221.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> diff --git a/tests/0013_put/basic.log.ref b/tests/0013_put/basic.log.ref new file mode 100644 index 0000000..595c069 --- /dev/null +++ b/tests/0013_put/basic.log.ref @@ -0,0 +1,831 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <500 (0x1f4)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <900 (0x384)> + [1] #xxxx.1.1.num.int <8 (0x8)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <222 (0xde)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <444 (0x1bc)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem +GC: --#xxxx.1.2.mem +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <20 (0x14)> + [3] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <500 (0x1f4)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <20 (0x14)> + [4] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.num.int <30 (0x1e)> + [4] #xxxx.1.2.num.int <20 (0x14)> + [5] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #xxxx.1.2.num.int <20 (0x14)> + [6] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.num.int <30 (0x1e)> + [6] #xxxx.1.2.num.int <20 (0x14)> + [7] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <500 (0x1f4)> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #xxxx.1.2.num.int <20 (0x14)> + [8] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.array +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <500 (0x1f4)> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #xxxx.1.2.num.int <20 (0x14)> + [8] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <900 (0x384)> + [2] #0.0.nil + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.2.num.int <500 (0x1f4)> + [6] #xxxx.1.2.num.int <400 (0x190)> + [7] #xxxx.1.2.num.int <30 (0x1e)> + [8] #xxxx.1.2.num.int <20 (0x14)> + [9] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.2.num.int <500 (0x1f4)> + [7] #xxxx.1.2.num.int <400 (0x190)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #xxxx.1.2.num.int <20 (0x14)> + [10] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.2.num.int <500 (0x1f4)> + [7] #xxxx.1.2.num.int <400 (0x190)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #xxxx.1.2.num.int <20 (0x14)> + [10] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <222 (0xde)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [4] #xxxx.1.2.num.int <900 (0x384)> + [5] #0.0.nil + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.2.num.int <500 (0x1f4)> + [9] #xxxx.1.2.num.int <400 (0x190)> + [10] #xxxx.1.2.num.int <30 (0x1e)> + [11] #xxxx.1.2.num.int <20 (0x14)> + [12] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <222 (0xde)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.2.num.int <900 (0x384)> + [7] #0.0.nil + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.2.num.int <500 (0x1f4)> + [11] #xxxx.1.2.num.int <400 (0x190)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #xxxx.1.2.num.int <20 (0x14)> + [14] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <444 (0x1bc)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <222 (0xde)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.2.num.int <500 (0x1f4)> + [13] #xxxx.1.2.num.int <400 (0x190)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #xxxx.1.2.num.int <20 (0x14)> + [16] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <444 (0x1bc)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <222 (0xde)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.2.num.int <500 (0x1f4)> + [13] #xxxx.1.2.num.int <400 (0x190)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #xxxx.1.2.num.int <20 (0x14)> + [16] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem + [1] #xxxx.1.2.num.int <444 (0x1bc)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <222 (0xde)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <11 (0xb)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [9] #xxxx.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.2.num.int <500 (0x1f4)> + [14] #xxxx.1.2.num.int <400 (0x190)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #xxxx.1.2.num.int <20 (0x14)> + [17] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.mem + [2] #xxxx.1.2.num.int <444 (0x1bc)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <222 (0xde)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <11 (0xb)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #xxxx.1.2.num.int <500 (0x1f4)> + [15] #xxxx.1.2.num.int <400 (0x190)> + [16] #xxxx.1.2.num.int <30 (0x1e)> + [17] #xxxx.1.2.num.int <20 (0x14)> + [18] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.mem +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.mem +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.2.num.int <444 (0x1bc)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <222 (0xde)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <11 (0xb)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [9] #xxxx.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.2.num.int <500 (0x1f4)> + [14] #xxxx.1.2.num.int <400 (0x190)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #xxxx.1.2.num.int <20 (0x14)> + [17] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.2.num.int <444 (0x1bc)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <222 (0xde)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <11 (0xb)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #xxxx.1.2.num.int <500 (0x1f4)> + [15] #xxxx.1.2.num.int <400 (0x190)> + [16] #xxxx.1.2.num.int <30 (0x1e)> + [17] #xxxx.1.2.num.int <20 (0x14)> + [18] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.2.num.int <444 (0x1bc)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <222 (0xde)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <11 (0xb)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <900 (0x384)> + [12] #0.0.nil + [13] #0.0.nil + [14] #0.0.nil + [15] #xxxx.1.2.num.int <500 (0x1f4)> + [16] #xxxx.1.2.num.int <400 (0x190)> + [17] #xxxx.1.2.num.int <30 (0x1e)> + [18] #xxxx.1.2.num.int <20 (0x14)> + [19] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.2.num.int <444 (0x1bc)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <222 (0xde)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <11 (0xb)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <900 (0x384)> + [13] #0.0.nil + [14] #0.0.nil + [15] #0.0.nil + [16] #xxxx.1.2.num.int <500 (0x1f4)> + [17] #xxxx.1.2.num.int <400 (0x190)> + [18] #xxxx.1.2.num.int <30 (0x1e)> + [19] #xxxx.1.2.num.int <20 (0x14)> + [20] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.2.num.int <444 (0x1bc)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <222 (0xde)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <11 (0xb)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #xxxx.1.2.num.int <500 (0x1f4)> + [18] #xxxx.1.2.num.int <400 (0x190)> + [19] #xxxx.1.2.num.int <30 (0x1e)> + [20] #xxxx.1.2.num.int <20 (0x14)> + [21] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.2.num.int <444 (0x1bc)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <222 (0xde)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <11 (0xb)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #xxxx.1.2.num.int <500 (0x1f4)> + [18] #xxxx.1.2.num.int <400 (0x190)> + [19] #xxxx.1.2.num.int <30 (0x1e)> + [20] #xxxx.1.2.num.int <20 (0x14)> + [21] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0013_put/code.log.ref b/tests/0013_put/code.log.ref new file mode 100644 index 0000000..cdee498 --- /dev/null +++ b/tests/0013_put/code.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 int 81 64 100 + 12 0x00027 word 38 70 75 74 put + 4 13 0x0002b word 58 66 6f 6f 5f 31 foo_1 + 14 0x00031 int 81 ff -1 + 15 0x00033 int 91 90 01 400 + 16 0x00036 word 38 70 75 74 put + 5 17 0x0003a word 58 66 6f 6f 5f 31 foo_1 + 18 0x00040 int 41 4 + 19 0x00041 int 91 f4 01 500 + 20 0x00044 word 38 70 75 74 put + 6 21 0x00048 word 58 66 6f 6f 5f 31 foo_1 + 22 0x0004e int 81 08 8 + 23 0x00050 int 91 84 03 900 + 24 0x00053 word 38 70 75 74 put + 8 25 0x00057 ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x0005d word 18 28 ( + 27 0x0005f str 27 61 61 "aa" + 28 0x00062 int 81 0b 11 + 29 0x00064 str 27 62 62 "bb" + 30 0x00067 int 81 16 22 + 31 0x00069 str 27 63 63 "cc" + 32 0x0006c int 81 21 33 + 33 0x0006e word 18 29 ) + 34 0x00070 word 38 64 65 66 def + 10 35 0x00074 word 58 66 6f 6f 5f 32 foo_2 + 36 0x0007a str 27 62 62 "bb" + 37 0x0007d int 91 de 00 222 + 38 0x00080 word 38 70 75 74 put + 11 39 0x00084 word 58 66 6f 6f 5f 32 foo_2 + 40 0x0008a str 27 64 64 "dd" + 41 0x0008d int 91 bc 01 444 + 42 0x00090 word 38 70 75 74 put + 13 43 0x00094 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0009a int 51 5 + 45 0x0009b word 68 73 74 72 69 6e 67 string + 46 0x000a2 word 38 64 65 66 def + 15 47 0x000a6 word 58 66 6f 6f 5f 33 foo_3 + 48 0x000ac int 01 0 + 49 0x000ad int 81 41 'A' + 50 0x000af word 38 70 75 74 put + 16 51 0x000b3 word 58 66 6f 6f 5f 33 foo_3 + 52 0x000b9 int 31 3 + 53 0x000ba int 81 35 '5' + 54 0x000bc word 38 70 75 74 put + 17 55 0x000c0 word 58 66 6f 6f 5f 33 foo_3 + 56 0x000c6 int 81 ff -1 + 57 0x000c8 int 81 36 '6' + 58 0x000ca word 38 70 75 74 put + 19 59 0x000ce word 58 66 6f 6f 5f 31 foo_1 + 60 0x000d4 code 16 { + 61 0x000d5 prim 13 } + 62 0x000d6 word 68 66 6f 72 61 6c 6c forall + 20 63 0x000dd word 58 66 6f 6f 5f 32 foo_2 + 64 0x000e3 code 16 { + 65 0x000e4 prim 13 } + 66 0x000e5 word 68 66 6f 72 61 6c 6c forall + 21 67 0x000ec word 58 66 6f 6f 5f 33 foo_3 + 68 0x000f2 code 16 { + 69 0x000f3 prim 13 } + 70 0x000f4 word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0013_put/code1.log.ref b/tests/0013_put/code1.log.ref new file mode 100644 index 0000000..2e83958 --- /dev/null +++ b/tests/0013_put/code1.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 int 81 64 100 + 12 0x00027 word 38 70 75 74 put + 4 13 0x0002b xref 84 0d foo_1 + 14 0x0002d int 81 ff -1 + 15 0x0002f int 91 90 01 400 + 16 0x00032 xref 84 0b put + 5 17 0x00034 xref 84 16 foo_1 + 18 0x00036 int 41 4 + 19 0x00037 int 91 f4 01 500 + 20 0x0003a xref 84 13 put + 6 21 0x0003c xref 84 1e foo_1 + 22 0x0003e int 81 08 8 + 23 0x00040 int 91 84 03 900 + 24 0x00043 xref 84 1c put + 8 25 0x00045 ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x0004b word 18 28 ( + 27 0x0004d str 27 61 61 "aa" + 28 0x00050 int 81 0b 11 + 29 0x00052 str 27 62 62 "bb" + 30 0x00055 int 81 16 22 + 31 0x00057 str 27 63 63 "cc" + 32 0x0005a int 81 21 33 + 33 0x0005c word 18 29 ) + 34 0x0005e xref 84 44 def + 10 35 0x00060 word 58 66 6f 6f 5f 32 foo_2 + 36 0x00066 xref 84 14 "bb" + 37 0x00068 int 91 de 00 222 + 38 0x0006b xref 84 44 put + 11 39 0x0006d xref 84 0d foo_2 + 40 0x0006f str 27 64 64 "dd" + 41 0x00072 int 91 bc 01 444 + 42 0x00075 xref 84 4e put + 13 43 0x00077 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0007d int 51 5 + 45 0x0007e word 68 73 74 72 69 6e 67 string + 46 0x00085 xref 84 6b def + 15 47 0x00087 word 58 66 6f 6f 5f 33 foo_3 + 48 0x0008d int 01 0 + 49 0x0008e int 81 41 'A' + 50 0x00090 xref 84 69 put + 16 51 0x00092 xref 84 0b foo_3 + 52 0x00094 int 31 3 + 53 0x00095 int 81 35 '5' + 54 0x00097 xref 84 70 put + 17 55 0x00099 xref 84 12 foo_3 + 56 0x0009b int 81 ff -1 + 57 0x0009d int 81 36 '6' + 58 0x0009f xref 84 78 put + 19 59 0x000a1 xref 84 83 foo_1 + 60 0x000a3 code 16 { + 61 0x000a4 prim 13 } + 62 0x000a5 word 68 66 6f 72 61 6c 6c forall + 20 63 0x000ac xref 84 4c foo_2 + 64 0x000ae code 16 { + 65 0x000af prim 13 } + 66 0x000b0 xref 84 0b forall + 21 67 0x000b2 xref 84 2b foo_3 + 68 0x000b4 code 16 { + 69 0x000b5 prim 13 } + 70 0x000b6 xref 84 11 forall diff --git a/tests/0013_put/code2.log.ref b/tests/0013_put/code2.log.ref new file mode 100644 index 0000000..e24db5a --- /dev/null +++ b/tests/0013_put/code2.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 word 58 66 6f 6f 5f 31 foo_1 + 10 0x0001f int 01 0 + 11 0x00020 int 81 64 100 + 12 0x00022 prim 83 13 put + 4 13 0x00024 xref 84 0b foo_1 + 14 0x00026 int 81 ff -1 + 15 0x00028 int 91 90 01 400 + 16 0x0002b prim 83 13 put + 5 17 0x0002d xref 84 14 foo_1 + 18 0x0002f int 41 4 + 19 0x00030 int 91 f4 01 500 + 20 0x00033 prim 83 13 put + 6 21 0x00035 xref 84 1c foo_1 + 22 0x00037 int 81 08 8 + 23 0x00039 int 91 84 03 900 + 24 0x0003c prim 83 13 put + 8 25 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x00044 prim 43 ( + 27 0x00045 str 27 61 61 "aa" + 28 0x00048 int 81 0b 11 + 29 0x0004a str 27 62 62 "bb" + 30 0x0004d int 81 16 22 + 31 0x0004f str 27 63 63 "cc" + 32 0x00052 int 81 21 33 + 33 0x00054 prim 53 ) + 34 0x00055 prim 63 def + 10 35 0x00056 word 58 66 6f 6f 5f 32 foo_2 + 36 0x0005c xref 84 12 "bb" + 37 0x0005e int 91 de 00 222 + 38 0x00061 prim 83 13 put + 11 39 0x00063 xref 84 0d foo_2 + 40 0x00065 str 27 64 64 "dd" + 41 0x00068 int 91 bc 01 444 + 42 0x0006b prim 83 13 put + 13 43 0x0006d ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x00073 int 51 5 + 45 0x00074 prim 83 11 string + 46 0x00076 prim 63 def + 15 47 0x00077 word 58 66 6f 6f 5f 33 foo_3 + 48 0x0007d int 01 0 + 49 0x0007e int 81 41 'A' + 50 0x00080 prim 83 13 put + 16 51 0x00082 xref 84 0b foo_3 + 52 0x00084 int 31 3 + 53 0x00085 int 81 35 '5' + 54 0x00087 prim 83 13 put + 17 55 0x00089 xref 84 12 foo_3 + 56 0x0008b int 81 ff -1 + 57 0x0008d int 81 36 '6' + 58 0x0008f prim 83 13 put + 19 59 0x00091 xref 84 78 foo_1 + 60 0x00093 code 16 { + 61 0x00094 prim 13 } + 62 0x00095 prim 83 0e forall + 20 63 0x00097 xref 84 41 foo_2 + 64 0x00099 code 16 { + 65 0x0009a prim 13 } + 66 0x0009b prim 83 0e forall + 21 67 0x0009d xref 84 26 foo_3 + 68 0x0009f code 16 { + 69 0x000a0 prim 13 } + 70 0x000a1 prim 83 0e forall diff --git a/tests/0013_put/main.gs b/tests/0013_put/main.gs new file mode 100644 index 0000000..689a5d4 --- /dev/null +++ b/tests/0013_put/main.gs @@ -0,0 +1,21 @@ +/foo_1 [ 10 20 30 40 ] def + +foo_1 0 100 put +foo_1 -1 400 put +foo_1 4 500 put +foo_1 8 900 put + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 ) def + +foo_2 "bb" 222 put +foo_2 "dd" 444 put + +/foo_3 5 string def + +foo_3 0 'A' put +foo_3 3 '5' put +foo_3 -1 '6' put + +foo_1 { } forall +foo_2 { } forall +foo_3 { } forall diff --git a/tests/0013_put/mem.log.ref b/tests/0013_put/mem.log.ref new file mode 100644 index 0000000..52f797e --- /dev/null +++ b/tests/0013_put/mem.log.ref @@ -0,0 +1,844 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 252] + 8: 0.00, 0x001d6b70[ 72] + 9: 188.01, 0x001d6bc0[ 56] + 10: 218.01, 0x001d6c00[ 8] + 11: 0.00, 0x001d6c10[ 8] + 12: 197.01, 0x001d6c20[ 72] + 13: 194.01, 0x001d6c70[ 88] + 14: 0.00, 0x001d6cd0[ 36] + 15: 211.01, 0x001d6cfc[ 164] + 16: 0.00, 0x001d6da8[ 56] + 17: 187.01, 0x001d6de8[ 144] + 18: 0.00, 0x001d6e80[14848384] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #204.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x58, size 5, "foo_2"> => #211.1.1.hash + #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> => #218.1.1.mem + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 58 66 .......(.]8defXf + 6f 6f 5f 31 01 81 64 38 70 75 74 58 66 6f 6f 5f oo_1..d8putXfoo_ + 31 81 ff 91 90 01 38 70 75 74 58 66 6f 6f 5f 31 1.....8putXfoo_1 + 41 91 f4 01 38 70 75 74 58 66 6f 6f 5f 31 81 08 A...8putXfoo_1.. + 91 84 03 38 70 75 74 59 66 6f 6f 5f 32 18 28 27 ...8putYfoo_2.(' + 61 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 aa..'bb..'cc.!.) + 38 64 65 66 58 66 6f 6f 5f 32 27 62 62 91 de 00 8defXfoo_2'bb... + 38 70 75 74 58 66 6f 6f 5f 32 27 64 64 91 bc 01 8putXfoo_2'dd... + 38 70 75 74 59 66 6f 6f 5f 33 51 68 73 74 72 69 8putYfoo_3Qhstri + 6e 67 38 64 65 66 58 66 6f 6f 5f 33 01 81 41 38 ng8defXfoo_3..A8 + 70 75 74 58 66 6f 6f 5f 33 31 81 35 38 70 75 74 putXfoo_31.58put + 58 66 6f 6f 5f 33 81 ff 81 36 38 70 75 74 58 66 Xfoo_3...68putXf + 6f 6f 5f 31 16 13 68 66 6f 72 61 6c 6c 58 66 6f oo_1..hforallXfo + 6f 5f 32 16 13 68 66 6f 72 61 6c 6c 58 66 6f 6f o_2..hforallXfoo + 5f 33 16 13 68 66 6f 72 61 6c 6c _3..hforall + #187.1.1.array + [ 0] #196.1.2.num.int <100 (0x64)> + [ 1] #191.1.2.num.int <20 (0x14)> + [ 2] #192.1.2.num.int <30 (0x1e)> + [ 3] #199.1.2.num.int <400 (0x190)> + [ 4] #201.1.2.num.int <500 (0x1f4)> + [ 5] #0.0.nil + [ 6] #0.0.nil + [ 7] #0.0.nil + [ 8] #203.1.2.num.int <900 (0x384)> + [ 9] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [10] #206.1.2.num.int <11 (0xb)> + [11] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [12] #213.1.2.num.int <222 (0xde)> + [13] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [14] #210.1.2.num.int <33 (0x21)> + [15] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [16] #215.1.2.num.int <444 (0x1bc)> + [17] #230.1.1.num.int <65 (0x41)> + [18] #232.1.1.num.int <0 (0x0)> + [19] #233.1.1.num.int <0 (0x0)> + [20] #234.1.1.num.int <53 (0x35)> + [21] #235.1.1.num.int <54 (0x36)> + #188.1.1.ctx.func + type 17, ip 0xfb (0xfb) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #191.1.2.num.int <20 (0x14)> + #192.1.2.num.int <30 (0x1e)> + #194.1.1.array + [ 0] #196.1.2.num.int <100 (0x64)> + [ 1] #191.1.2.num.int <20 (0x14)> + [ 2] #192.1.2.num.int <30 (0x1e)> + [ 3] #199.1.2.num.int <400 (0x190)> + [ 4] #201.1.2.num.int <500 (0x1f4)> + [ 5] #0.0.nil + [ 6] #0.0.nil + [ 7] #0.0.nil + [ 8] #203.1.2.num.int <900 (0x384)> + #196.1.2.num.int <100 (0x64)> + #197.1.1.array + #199.1.2.num.int <400 (0x190)> + #201.1.2.num.int <500 (0x1f4)> + #203.1.2.num.int <900 (0x384)> + #204.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x58, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + 61 61 aa + #206.1.2.num.int <11 (0xb)> + #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + 63 63 cc + #210.1.2.num.int <33 (0x21)> + #211.1.1.hash + #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> => #206.1.2.num.int <11 (0xb)> + #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> => #213.1.2.num.int <222 (0xde)> + #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> => #210.1.2.num.int <33 (0x21)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> => #215.1.2.num.int <444 (0x1bc)> + #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + 62 62 bb + #213.1.2.num.int <222 (0xde)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + 64 64 dd + #215.1.2.num.int <444 (0x1bc)> + #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #218.1.1.mem + 41 00 00 35 36 A..56 + #230.1.1.num.int <65 (0x41)> + #232.1.1.num.int <0 (0x0)> + #233.1.1.num.int <0 (0x0)> + #234.1.1.num.int <53 (0x35)> + #235.1.1.num.int <54 (0x36)> diff --git a/tests/0013_put/screen.log.ref b/tests/0013_put/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0013_put/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0013_put/trace.log.ref b/tests/0013_put/trace.log.ref new file mode 100644 index 0000000..e0df9eb --- /dev/null +++ b/tests/0013_put/trace.log.ref @@ -0,0 +1,917 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x25, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <100 (0x64)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #194.1.2.array +IP: #186:0x27, type 8, 40[3] +GC: ++#196.1.1.num.int +GC: --#190.1.1.num.int +GC: --#196.1.2.num.int +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2b, type 8, 44[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x31, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array +IP: #186:0x33, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <400 (0x190)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #194.1.2.array +IP: #186:0x36, type 8, 55[3] +GC: ++#199.1.1.num.int +GC: --#193.1.1.num.int +GC: --#199.1.2.num.int +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x40, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <4 (0x4)> + [1] #194.1.2.array +IP: #186:0x41, type 1, 500 (0x1f4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <500 (0x1f4)> + [1] #200.1.1.num.int <4 (0x4)> + [2] #194.1.2.array +IP: #186:0x44, type 8, 69[3] +GC: ++#201.1.1.num.int +GC: --#201.1.2.num.int +GC: --#200.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x48, type 8, 73[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x4e, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <8 (0x8)> + [1] #194.1.2.array +IP: #186:0x50, type 1, 900 (0x384) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <900 (0x384)> + [1] #202.1.1.num.int <8 (0x8)> + [2] #194.1.2.array +IP: #186:0x53, type 8, 84[3] +GC: ++#203.1.1.num.int +GC: --#203.1.2.num.int +GC: --#202.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x57, type 9, 88[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x5d, type 8, 94[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #204.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x5f, type 7, 96[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x60, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #204.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x62, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <11 (0xb)> + [1] #205.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x60, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #204.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x64, type 7, 101[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x65, size 2, "bb"> + [1] #206.1.1.num.int <11 (0xb)> + [2] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x60, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #204.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x67, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <22 (0x16)> + [1] #207.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x65, size 2, "bb"> + [2] #206.1.1.num.int <11 (0xb)> + [3] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x60, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #204.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x69, type 7, 106[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6a, size 2, "cc"> + [1] #208.1.1.num.int <22 (0x16)> + [2] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x65, size 2, "bb"> + [3] #206.1.1.num.int <11 (0xb)> + [4] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x60, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x6c, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <33 (0x21)> + [1] #209.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6a, size 2, "cc"> + [2] #208.1.1.num.int <22 (0x16)> + [3] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x65, size 2, "bb"> + [4] #206.1.1.num.int <11 (0xb)> + [5] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x60, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x6e, type 8, 111[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.hash + [1] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x70, type 8, 113[3] +GC: ++#204.1.1.mem.ref.ro +GC: ++#211.1.1.hash +GC: --#211.1.2.hash +GC: --#204.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x74, type 8, 117[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash +IP: #186:0x7a, type 7, 123[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x7b, size 2, "bb"> + [1] #211.1.2.hash +IP: #186:0x7d, type 1, 222 (0xde) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <222 (0xde)> + [1] #212.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x7b, size 2, "bb"> + [2] #211.1.2.hash +IP: #186:0x80, type 8, 129[3] +GC: ++#212.1.1.mem.str.ro +GC: ++#213.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#208.1.1.num.int +GC: --#213.1.2.num.int +GC: --#212.1.2.mem.str.ro +GC: --#211.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x84, type 8, 133[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash +IP: #186:0x8a, type 7, 139[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x8b, size 2, "dd"> + [1] #211.1.2.hash +IP: #186:0x8d, type 1, 444 (0x1bc) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <444 (0x1bc)> + [1] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #211.1.2.hash +IP: #186:0x90, type 8, 145[3] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#215.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#211.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x94, type 9, 149[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0x9a, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <5 (0x5)> + [1] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0x9b, type 8, 156[6] +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem + [1] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0xa2, type 8, 163[3] +GC: ++#216.1.1.mem.ref.ro +GC: ++#218.1.1.mem +GC: --#218.1.2.mem +GC: --#216.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xa6, type 8, 167[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xac, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <0 (0x0)> + [1] #218.1.2.mem +IP: #186:0xad, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <65 (0x41)> + [1] #219.1.1.num.int <0 (0x0)> + [2] #218.1.2.mem +IP: #186:0xaf, type 8, 176[3] +GC: --#220.1.1.num.int +GC: --#219.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xb3, type 8, 180[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xb9, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <3 (0x3)> + [1] #218.1.2.mem +IP: #186:0xba, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <53 (0x35)> + [1] #221.1.1.num.int <3 (0x3)> + [2] #218.1.2.mem +IP: #186:0xbc, type 8, 189[3] +GC: --#222.1.1.num.int +GC: --#221.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xc0, type 8, 193[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xc6, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #218.1.2.mem +IP: #186:0xc8, type 1, 54 (0x36) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <54 (0x36)> + [1] #223.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #218.1.2.mem +IP: #186:0xca, type 8, 203[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xce, type 8, 207[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0xd4, type 6, 213[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xd5, size 1> + [1] #194.1.2.array +IP: #186:0xd6, type 8, 215[6] +GC: ++#196.1.1.num.int +GC: ++#225.1.1.mem.code.ro +GC: ++#194.1.2.array +GC: --#225.1.2.mem.code.ro +GC: --#194.1.3.array +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#191.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <20 (0x14)> + [1] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#192.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.num.int <30 (0x1e)> + [1] #191.1.2.num.int <20 (0x14)> + [2] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#199.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <400 (0x190)> + [1] #192.1.2.num.int <30 (0x1e)> + [2] #191.1.2.num.int <20 (0x14)> + [3] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#201.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <500 (0x1f4)> + [1] #199.1.2.num.int <400 (0x190)> + [2] #192.1.2.num.int <30 (0x1e)> + [3] #191.1.2.num.int <20 (0x14)> + [4] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #201.1.2.num.int <500 (0x1f4)> + [2] #199.1.2.num.int <400 (0x190)> + [3] #192.1.2.num.int <30 (0x1e)> + [4] #191.1.2.num.int <20 (0x14)> + [5] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #201.1.2.num.int <500 (0x1f4)> + [3] #199.1.2.num.int <400 (0x190)> + [4] #192.1.2.num.int <30 (0x1e)> + [5] #191.1.2.num.int <20 (0x14)> + [6] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #0.0.nil + [3] #201.1.2.num.int <500 (0x1f4)> + [4] #199.1.2.num.int <400 (0x190)> + [5] #192.1.2.num.int <30 (0x1e)> + [6] #191.1.2.num.int <20 (0x14)> + [7] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #201.1.2.num.int <500 (0x1f4)> + [5] #199.1.2.num.int <400 (0x190)> + [6] #192.1.2.num.int <30 (0x1e)> + [7] #191.1.2.num.int <20 (0x14)> + [8] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#226.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#225.1.1.mem.code.ro +GC: --#194.1.2.array +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #201.1.2.num.int <500 (0x1f4)> + [5] #199.1.2.num.int <400 (0x190)> + [6] #192.1.2.num.int <30 (0x1e)> + [7] #191.1.2.num.int <20 (0x14)> + [8] #196.1.2.num.int <100 (0x64)> +IP: #186:0xdd, type 8, 222[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash + [1] #203.1.2.num.int <900 (0x384)> + [2] #0.0.nil + [3] #0.0.nil + [4] #0.0.nil + [5] #201.1.2.num.int <500 (0x1f4)> + [6] #199.1.2.num.int <400 (0x190)> + [7] #192.1.2.num.int <30 (0x1e)> + [8] #191.1.2.num.int <20 (0x14)> + [9] #196.1.2.num.int <100 (0x64)> +IP: #186:0xe3, type 6, 228[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xe4, size 1> + [1] #211.1.2.hash + [2] #203.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #201.1.2.num.int <500 (0x1f4)> + [7] #199.1.2.num.int <400 (0x190)> + [8] #192.1.2.num.int <30 (0x1e)> + [9] #191.1.2.num.int <20 (0x14)> + [10] #196.1.2.num.int <100 (0x64)> +IP: #186:0xe5, type 8, 230[6] +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +GC: ++#227.1.1.mem.code.ro +GC: ++#211.1.2.hash +GC: --#227.1.2.mem.code.ro +GC: --#211.1.3.hash +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <11 (0xb)> + [1] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [2] #203.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #201.1.2.num.int <500 (0x1f4)> + [7] #199.1.2.num.int <400 (0x190)> + [8] #192.1.2.num.int <30 (0x1e)> + [9] #191.1.2.num.int <20 (0x14)> + [10] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#212.1.1.mem.str.ro +GC: ++#213.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.num.int <222 (0xde)> + [1] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [2] #206.1.2.num.int <11 (0xb)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [4] #203.1.2.num.int <900 (0x384)> + [5] #0.0.nil + [6] #0.0.nil + [7] #0.0.nil + [8] #201.1.2.num.int <500 (0x1f4)> + [9] #199.1.2.num.int <400 (0x190)> + [10] #192.1.2.num.int <30 (0x1e)> + [11] #191.1.2.num.int <20 (0x14)> + [12] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#209.1.1.mem.str.ro +GC: ++#210.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.num.int <33 (0x21)> + [1] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [2] #213.1.2.num.int <222 (0xde)> + [3] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [4] #206.1.2.num.int <11 (0xb)> + [5] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [6] #203.1.2.num.int <900 (0x384)> + [7] #0.0.nil + [8] #0.0.nil + [9] #0.0.nil + [10] #201.1.2.num.int <500 (0x1f4)> + [11] #199.1.2.num.int <400 (0x190)> + [12] #192.1.2.num.int <30 (0x1e)> + [13] #191.1.2.num.int <20 (0x14)> + [14] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <444 (0x1bc)> + [1] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #210.1.2.num.int <33 (0x21)> + [3] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [4] #213.1.2.num.int <222 (0xde)> + [5] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [6] #206.1.2.num.int <11 (0xb)> + [7] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [8] #203.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #201.1.2.num.int <500 (0x1f4)> + [13] #199.1.2.num.int <400 (0x190)> + [14] #192.1.2.num.int <30 (0x1e)> + [15] #191.1.2.num.int <20 (0x14)> + [16] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#228.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#227.1.1.mem.code.ro +GC: --#211.1.2.hash +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <444 (0x1bc)> + [1] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #210.1.2.num.int <33 (0x21)> + [3] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [4] #213.1.2.num.int <222 (0xde)> + [5] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [6] #206.1.2.num.int <11 (0xb)> + [7] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [8] #203.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #201.1.2.num.int <500 (0x1f4)> + [13] #199.1.2.num.int <400 (0x190)> + [14] #192.1.2.num.int <30 (0x1e)> + [15] #191.1.2.num.int <20 (0x14)> + [16] #196.1.2.num.int <100 (0x64)> +IP: #186:0xec, type 8, 237[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem + [1] #215.1.2.num.int <444 (0x1bc)> + [2] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [3] #210.1.2.num.int <33 (0x21)> + [4] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [5] #213.1.2.num.int <222 (0xde)> + [6] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [7] #206.1.2.num.int <11 (0xb)> + [8] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [9] #203.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #201.1.2.num.int <500 (0x1f4)> + [14] #199.1.2.num.int <400 (0x190)> + [15] #192.1.2.num.int <30 (0x1e)> + [16] #191.1.2.num.int <20 (0x14)> + [17] #196.1.2.num.int <100 (0x64)> +IP: #186:0xf2, type 6, 243[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xf3, size 1> + [1] #218.1.2.mem + [2] #215.1.2.num.int <444 (0x1bc)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [4] #210.1.2.num.int <33 (0x21)> + [5] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [6] #213.1.2.num.int <222 (0xde)> + [7] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [8] #206.1.2.num.int <11 (0xb)> + [9] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [10] #203.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #201.1.2.num.int <500 (0x1f4)> + [15] #199.1.2.num.int <400 (0x190)> + [16] #192.1.2.num.int <30 (0x1e)> + [17] #191.1.2.num.int <20 (0x14)> + [18] #196.1.2.num.int <100 (0x64)> +IP: #186:0xf4, type 8, 245[6] +GC: ++#229.1.1.mem.code.ro +GC: ++#218.1.2.mem +GC: --#229.1.2.mem.code.ro +GC: --#218.1.3.mem +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <65 (0x41)> + [1] #215.1.2.num.int <444 (0x1bc)> + [2] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [3] #210.1.2.num.int <33 (0x21)> + [4] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [5] #213.1.2.num.int <222 (0xde)> + [6] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [7] #206.1.2.num.int <11 (0xb)> + [8] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [9] #203.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #201.1.2.num.int <500 (0x1f4)> + [14] #199.1.2.num.int <400 (0x190)> + [15] #192.1.2.num.int <30 (0x1e)> + [16] #191.1.2.num.int <20 (0x14)> + [17] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <0 (0x0)> + [1] #230.1.1.num.int <65 (0x41)> + [2] #215.1.2.num.int <444 (0x1bc)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [4] #210.1.2.num.int <33 (0x21)> + [5] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [6] #213.1.2.num.int <222 (0xde)> + [7] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [8] #206.1.2.num.int <11 (0xb)> + [9] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [10] #203.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #201.1.2.num.int <500 (0x1f4)> + [15] #199.1.2.num.int <400 (0x190)> + [16] #192.1.2.num.int <30 (0x1e)> + [17] #191.1.2.num.int <20 (0x14)> + [18] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <0 (0x0)> + [1] #232.1.1.num.int <0 (0x0)> + [2] #230.1.1.num.int <65 (0x41)> + [3] #215.1.2.num.int <444 (0x1bc)> + [4] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [5] #210.1.2.num.int <33 (0x21)> + [6] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [7] #213.1.2.num.int <222 (0xde)> + [8] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [9] #206.1.2.num.int <11 (0xb)> + [10] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [11] #203.1.2.num.int <900 (0x384)> + [12] #0.0.nil + [13] #0.0.nil + [14] #0.0.nil + [15] #201.1.2.num.int <500 (0x1f4)> + [16] #199.1.2.num.int <400 (0x190)> + [17] #192.1.2.num.int <30 (0x1e)> + [18] #191.1.2.num.int <20 (0x14)> + [19] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <53 (0x35)> + [1] #233.1.1.num.int <0 (0x0)> + [2] #232.1.1.num.int <0 (0x0)> + [3] #230.1.1.num.int <65 (0x41)> + [4] #215.1.2.num.int <444 (0x1bc)> + [5] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [6] #210.1.2.num.int <33 (0x21)> + [7] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [8] #213.1.2.num.int <222 (0xde)> + [9] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [10] #206.1.2.num.int <11 (0xb)> + [11] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [12] #203.1.2.num.int <900 (0x384)> + [13] #0.0.nil + [14] #0.0.nil + [15] #0.0.nil + [16] #201.1.2.num.int <500 (0x1f4)> + [17] #199.1.2.num.int <400 (0x190)> + [18] #192.1.2.num.int <30 (0x1e)> + [19] #191.1.2.num.int <20 (0x14)> + [20] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <54 (0x36)> + [1] #234.1.1.num.int <53 (0x35)> + [2] #233.1.1.num.int <0 (0x0)> + [3] #232.1.1.num.int <0 (0x0)> + [4] #230.1.1.num.int <65 (0x41)> + [5] #215.1.2.num.int <444 (0x1bc)> + [6] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [7] #210.1.2.num.int <33 (0x21)> + [8] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [9] #213.1.2.num.int <222 (0xde)> + [10] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [11] #206.1.2.num.int <11 (0xb)> + [12] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [13] #203.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #201.1.2.num.int <500 (0x1f4)> + [18] #199.1.2.num.int <400 (0x190)> + [19] #192.1.2.num.int <30 (0x1e)> + [20] #191.1.2.num.int <20 (0x14)> + [21] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#231.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#229.1.1.mem.code.ro +GC: --#218.1.2.mem +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <54 (0x36)> + [1] #234.1.1.num.int <53 (0x35)> + [2] #233.1.1.num.int <0 (0x0)> + [3] #232.1.1.num.int <0 (0x0)> + [4] #230.1.1.num.int <65 (0x41)> + [5] #215.1.2.num.int <444 (0x1bc)> + [6] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [7] #210.1.2.num.int <33 (0x21)> + [8] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [9] #213.1.2.num.int <222 (0xde)> + [10] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [11] #206.1.2.num.int <11 (0xb)> + [12] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [13] #203.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #201.1.2.num.int <500 (0x1f4)> + [18] #199.1.2.num.int <400 (0x190)> + [19] #192.1.2.num.int <30 (0x1e)> + [20] #191.1.2.num.int <20 (0x14)> + [21] #196.1.2.num.int <100 (0x64)> diff --git a/tests/0014_string/basic.log.ref b/tests/0014_string/basic.log.ref new file mode 100644 index 0000000..1dee4df --- /dev/null +++ b/tests/0014_string/basic.log.ref @@ -0,0 +1,24 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.mem +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem + [1] #xxxx.1.1.mem diff --git a/tests/0014_string/code.log.ref b/tests/0014_string/code.log.ref new file mode 100644 index 0000000..729154a --- /dev/null +++ b/tests/0014_string/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a word 68 73 74 72 69 6e 67 string + 2 3 0x00011 int 01 0 + 4 0x00012 word 68 73 74 72 69 6e 67 string diff --git a/tests/0014_string/code1.log.ref b/tests/0014_string/code1.log.ref new file mode 100644 index 0000000..24c176c --- /dev/null +++ b/tests/0014_string/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a word 68 73 74 72 69 6e 67 string + 2 3 0x00011 int 01 0 + 4 0x00012 xref 84 08 string diff --git a/tests/0014_string/code2.log.ref b/tests/0014_string/code2.log.ref new file mode 100644 index 0000000..fc5b120 --- /dev/null +++ b/tests/0014_string/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a prim 83 11 string + 2 3 0x0000c int 01 0 + 4 0x0000d prim 83 11 string diff --git a/tests/0014_string/main.gs b/tests/0014_string/main.gs new file mode 100644 index 0000000..87994d1 --- /dev/null +++ b/tests/0014_string/main.gs @@ -0,0 +1,2 @@ +10 string +0 string diff --git a/tests/0014_string/mem.log.ref b/tests/0014_string/mem.log.ref new file mode 100644 index 0000000..c3477bf --- /dev/null +++ b/tests/0014_string/mem.log.ref @@ -0,0 +1,759 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 190.01, 0x001d6b20[ 12] + 11: 191.01, 0x001d6b34[ 72] + 12: 0.00, 0x001d6b84[14849148] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 0a 68 73 74 72 69 6e uQ..Bz.`..hstrin + 67 01 68 73 74 72 69 6e 67 g.hstring + #187.1.1.array + [ 0] #190.1.1.mem + [ 1] #193.1.1.mem + #188.1.1.ctx.func + type 17, ip 0x19 (0x19) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.mem + 00 00 00 00 00 00 00 00 00 00 .......... + #191.1.1.array + #193.1.1.mem + diff --git a/tests/0014_string/screen.log.ref b/tests/0014_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0014_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0014_string/trace.log.ref b/tests/0014_string/trace.log.ref new file mode 100644 index 0000000..b81c93b --- /dev/null +++ b/tests/0014_string/trace.log.ref @@ -0,0 +1,29 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #186:0xa, type 8, 11[6] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem +IP: #186:0x11, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <0 (0x0)> + [1] #190.1.1.mem +IP: #186:0x12, type 8, 19[6] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem + [1] #190.1.1.mem diff --git a/tests/0015_length/basic.log.ref b/tests/0015_length/basic.log.ref new file mode 100644 index 0000000..b919982 --- /dev/null +++ b/tests/0015_length/basic.log.ref @@ -0,0 +1,236 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <22 (0x16)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [7] #xxxx.1.2.num.prim <4 (0x4)> + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <44 (0x2c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <22 (0x16)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [8] #xxxx.1.2.num.prim <4 (0x4)> + [9] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "ABC123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABC123"> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <4 (0x4)> diff --git a/tests/0015_length/code.log.ref b/tests/0015_length/code.log.ref new file mode 100644 index 0000000..96cf80b --- /dev/null +++ b/tests/0015_length/code.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 word 18 28 ( + 11 0x00026 str 27 61 61 "aa" + 12 0x00029 int 81 0b 11 + 13 0x0002b str 27 62 62 "bb" + 14 0x0002e int 81 16 22 + 15 0x00030 str 27 63 63 "cc" + 16 0x00033 int 81 21 33 + 17 0x00035 str 27 64 64 "dd" + 18 0x00038 int 81 2c 44 + 19 0x0003a word 18 29 ) + 20 0x0003c word 38 64 65 66 def + 5 21 0x00040 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00046 str 67 41 42 43 31 32 33 "ABC123" + 23 0x0004d word 38 64 65 66 def + 7 24 0x00051 word 58 66 6f 6f 5f 32 foo_2 + 25 0x00057 str 27 62 62 "bb" + 26 0x0005a word 68 64 65 6c 65 74 65 delete + 9 27 0x00061 word 58 66 6f 6f 5f 31 foo_1 + 28 0x00067 word 68 6c 65 6e 67 74 68 length + 10 29 0x0006e word 58 66 6f 6f 5f 32 foo_2 + 30 0x00074 word 68 6c 65 6e 67 74 68 length + 11 31 0x0007b word 58 66 6f 6f 5f 33 foo_3 + 32 0x00081 word 68 6c 65 6e 67 74 68 length diff --git a/tests/0015_length/code1.log.ref b/tests/0015_length/code1.log.ref new file mode 100644 index 0000000..509b5f3 --- /dev/null +++ b/tests/0015_length/code1.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 word 18 28 ( + 11 0x00026 str 27 61 61 "aa" + 12 0x00029 int 81 0b 11 + 13 0x0002b str 27 62 62 "bb" + 14 0x0002e int 81 16 22 + 15 0x00030 str 27 63 63 "cc" + 16 0x00033 int 81 21 33 + 17 0x00035 str 27 64 64 "dd" + 18 0x00038 int 81 2c 44 + 19 0x0003a word 18 29 ) + 20 0x0003c xref 84 22 def + 5 21 0x0003e ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00044 str 67 41 42 43 31 32 33 "ABC123" + 23 0x0004b xref 84 31 def + 7 24 0x0004d word 58 66 6f 6f 5f 32 foo_2 + 25 0x00053 xref 84 28 "bb" + 26 0x00055 word 68 64 65 6c 65 74 65 delete + 9 27 0x0005c word 58 66 6f 6f 5f 31 foo_1 + 28 0x00062 word 68 6c 65 6e 67 74 68 length + 10 29 0x00069 xref 84 1c foo_2 + 30 0x0006b xref 84 09 length + 11 31 0x0006d word 58 66 6f 6f 5f 33 foo_3 + 32 0x00073 xref 84 11 length diff --git a/tests/0015_length/code2.log.ref b/tests/0015_length/code2.log.ref new file mode 100644 index 0000000..e28ce26 --- /dev/null +++ b/tests/0015_length/code2.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x0001f prim 43 ( + 11 0x00020 str 27 61 61 "aa" + 12 0x00023 int 81 0b 11 + 13 0x00025 str 27 62 62 "bb" + 14 0x00028 int 81 16 22 + 15 0x0002a str 27 63 63 "cc" + 16 0x0002d int 81 21 33 + 17 0x0002f str 27 64 64 "dd" + 18 0x00032 int 81 2c 44 + 19 0x00034 prim 53 ) + 20 0x00035 prim 63 def + 5 21 0x00036 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x0003c str 67 41 42 43 31 32 33 "ABC123" + 23 0x00043 prim 63 def + 7 24 0x00044 word 58 66 6f 6f 5f 32 foo_2 + 25 0x0004a xref 84 25 "bb" + 26 0x0004c prim 83 14 delete + 9 27 0x0004e word 58 66 6f 6f 5f 31 foo_1 + 28 0x00054 prim 83 15 length + 10 29 0x00056 xref 84 12 foo_2 + 30 0x00058 prim 83 15 length + 11 31 0x0005a word 58 66 6f 6f 5f 33 foo_3 + 32 0x00060 prim 83 15 length diff --git a/tests/0015_length/main.gs b/tests/0015_length/main.gs new file mode 100644 index 0000000..4844d5f --- /dev/null +++ b/tests/0015_length/main.gs @@ -0,0 +1,11 @@ +/foo_1 [ 10 20 30 40 ] def + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 "dd" 44 ) def + +/foo_3 "ABC123" def + +foo_2 "bb" delete + +foo_1 length +foo_2 length +foo_3 length diff --git a/tests/0015_length/mem.log.ref b/tests/0015_length/mem.log.ref new file mode 100644 index 0000000..6e2eaf1 --- /dev/null +++ b/tests/0015_length/mem.log.ref @@ -0,0 +1,800 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 136] + 8: 187.01, 0x001d6afc[ 72] + 9: 188.01, 0x001d6b4c[ 56] + 10: 194.01, 0x001d6b8c[ 24] + 11: 204.01, 0x001d6bac[ 44] + 12: 208.01, 0x001d6be0[ 72] + 13: 0.00, 0x001d6c30[14848976] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1f, size 5, "foo_2"> => #204.1.1.hash + #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> => #206.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 59 66 .......(.]8defYf + 6f 6f 5f 32 18 28 27 61 61 81 0b 27 62 62 81 16 oo_2.('aa..'bb.. + 27 63 63 81 21 27 64 64 81 2c 18 29 38 64 65 66 'cc.!'dd.,.)8def + 59 66 6f 6f 5f 33 67 41 42 43 31 32 33 38 64 65 Yfoo_3gABC1238de + 66 58 66 6f 6f 5f 32 27 62 62 68 64 65 6c 65 74 fXfoo_2'bbhdelet + 65 58 66 6f 6f 5f 31 68 6c 65 6e 67 74 68 58 66 eXfoo_1hlengthXf + 6f 6f 5f 32 68 6c 65 6e 67 74 68 58 66 6f 6f 5f oo_2hlengthXfoo_ + 33 68 6c 65 6e 67 74 68 3hlength + #187.1.1.array + [ 0] #209.1.1.num.int <4 (0x4)> + [ 1] #210.1.1.num.int <3 (0x3)> + [ 2] #211.1.1.num.int <6 (0x6)> + #188.1.1.ctx.func + type 17, ip 0x88 (0x88) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.1.num.int <40 (0x28)> + #194.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.1.num.int <40 (0x28)> + #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x27, size 2, "aa"> + 61 61 aa + #197.1.1.num.int <11 (0xb)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x31, size 2, "cc"> + 63 63 cc + #201.1.1.num.int <33 (0x21)> + #202.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x36, size 2, "dd"> + 64 64 dd + #203.1.1.num.int <44 (0x2c)> + #204.1.1.hash + #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x27, size 2, "aa"> => #197.1.1.num.int <11 (0xb)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x31, size 2, "cc"> => #201.1.1.num.int <33 (0x21)> + #202.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x36, size 2, "dd"> => #203.1.1.num.int <44 (0x2c)> + #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #206.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + 41 42 43 31 32 33 ABC123 + #208.1.1.array + #209.1.1.num.int <4 (0x4)> + #210.1.1.num.int <3 (0x3)> + #211.1.1.num.int <6 (0x6)> diff --git a/tests/0015_length/screen.log.ref b/tests/0015_length/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0015_length/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0015_length/trace.log.ref b/tests/0015_length/trace.log.ref new file mode 100644 index 0000000..c41d230 --- /dev/null +++ b/tests/0015_length/trace.log.ref @@ -0,0 +1,269 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x24, type 8, 37[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x26, type 7, 39[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x27, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #195.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x29, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #196.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x27, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #195.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x2b, type 7, 44[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2c, size 2, "bb"> + [1] #197.1.1.num.int <11 (0xb)> + [2] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x27, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #195.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x2e, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <22 (0x16)> + [1] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2c, size 2, "bb"> + [2] #197.1.1.num.int <11 (0xb)> + [3] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x27, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #195.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x30, type 7, 49[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x31, size 2, "cc"> + [1] #199.1.1.num.int <22 (0x16)> + [2] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x2c, size 2, "bb"> + [3] #197.1.1.num.int <11 (0xb)> + [4] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x27, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #195.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x33, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <33 (0x21)> + [1] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x31, size 2, "cc"> + [2] #199.1.1.num.int <22 (0x16)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x2c, size 2, "bb"> + [4] #197.1.1.num.int <11 (0xb)> + [5] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x27, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #195.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x35, type 7, 54[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x36, size 2, "dd"> + [1] #201.1.1.num.int <33 (0x21)> + [2] #200.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x31, size 2, "cc"> + [3] #199.1.1.num.int <22 (0x16)> + [4] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2c, size 2, "bb"> + [5] #197.1.1.num.int <11 (0xb)> + [6] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x27, size 2, "aa"> + [7] #13.1.2.num.prim <4 (0x4)> + [8] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x38, type 1, 44 (0x2c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <44 (0x2c)> + [1] #202.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x36, size 2, "dd"> + [2] #201.1.1.num.int <33 (0x21)> + [3] #200.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x31, size 2, "cc"> + [4] #199.1.1.num.int <22 (0x16)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2c, size 2, "bb"> + [6] #197.1.1.num.int <11 (0xb)> + [7] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x27, size 2, "aa"> + [8] #13.1.2.num.prim <4 (0x4)> + [9] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3a, type 8, 59[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.hash + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3c, type 8, 61[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#204.1.1.hash +GC: --#204.1.2.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x40, type 9, 65[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> +IP: #186:0x46, type 7, 71[6] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 6, "ABC123"> + [1] #205.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x41, size 5, "foo_3"> +IP: #186:0x4d, type 8, 78[3] +GC: ++#205.1.1.mem.ref.ro +GC: ++#206.1.1.mem.str.ro +GC: --#206.1.2.mem.str.ro +GC: --#205.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x51, type 8, 82[5] +GC: ++#204.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.hash +IP: #186:0x57, type 7, 88[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x58, size 2, "bb"> + [1] #204.1.2.hash +IP: #186:0x5a, type 8, 91[6] +GC: --#198.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#199.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#204.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x61, type 8, 98[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x67, type 8, 104[6] +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <4 (0x4)> +IP: #186:0x6e, type 8, 111[5] +GC: ++#204.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.hash + [1] #209.1.1.num.int <4 (0x4)> +IP: #186:0x74, type 8, 117[6] +GC: --#204.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <3 (0x3)> + [1] #209.1.1.num.int <4 (0x4)> +IP: #186:0x7b, type 8, 124[5] +GC: ++#206.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + [1] #210.1.1.num.int <3 (0x3)> + [2] #209.1.1.num.int <4 (0x4)> +IP: #186:0x81, type 8, 130[6] +GC: --#206.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <6 (0x6)> + [1] #210.1.1.num.int <3 (0x3)> + [2] #209.1.1.num.int <4 (0x4)> diff --git a/tests/0016_delete_hash/basic.log.ref b/tests/0016_delete_hash/basic.log.ref new file mode 100644 index 0000000..b4f3907 --- /dev/null +++ b/tests/0016_delete_hash/basic.log.ref @@ -0,0 +1,635 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <22 (0x16)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [7] #xxxx.1.2.num.prim <4 (0x4)> + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <44 (0x2c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <22 (0x16)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [8] #xxxx.1.2.num.prim <4 (0x4)> + [9] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [1] #xxxx.1.1.num.int <44 (0x2c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [3] #xxxx.1.1.num.int <33 (0x21)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <22 (0x16)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [9] #xxxx.1.2.num.prim <4 (0x4)> + [10] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [2] #xxxx.1.1.num.int <44 (0x2c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [4] #xxxx.1.1.num.int <33 (0x21)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <22 (0x16)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [10] #xxxx.1.2.num.prim <4 (0x4)> + [11] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.8.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ff"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <55 (0x37)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <11 (0xb)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <55 (0x37)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <55 (0x37)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <55 (0x37)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <33 (0x21)> + [1] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.3.num.int <33 (0x21)> + [5] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <33 (0x21)> + [1] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.3.num.int <33 (0x21)> + [5] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.num.int <33 (0x21)> + [2] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.3.num.int <33 (0x21)> + [6] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.num.int <33 (0x21)> + [3] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.3.num.int <33 (0x21)> + [7] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.3.mem.str.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [9] #xxxx.1.1.num.int <11 (0xb)> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> diff --git a/tests/0016_delete_hash/code.log.ref b/tests/0016_delete_hash/code.log.ref new file mode 100644 index 0000000..4f7764e --- /dev/null +++ b/tests/0016_delete_hash/code.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d str 27 64 64 "dd" + 10 0x00020 int 81 2c 44 + 11 0x00022 str 27 65 65 "ee" + 12 0x00025 int 81 37 55 + 13 0x00027 word 18 29 ) + 14 0x00029 word 38 64 65 66 def + 3 15 0x0002d word 38 66 6f 6f foo + 16 0x00031 str 27 62 62 "bb" + 17 0x00034 word 68 64 65 6c 65 74 65 delete + 4 18 0x0003b word 38 66 6f 6f foo + 19 0x0003f str 27 64 64 "dd" + 20 0x00042 word 68 64 65 6c 65 74 65 delete + 5 21 0x00049 word 38 66 6f 6f foo + 22 0x0004d str 27 66 66 "ff" + 23 0x00050 word 68 64 65 6c 65 74 65 delete + 7 24 0x00057 word 38 66 6f 6f foo + 25 0x0005b code 16 { + 26 0x0005c prim 13 } + 27 0x0005d word 68 66 6f 72 61 6c 6c forall + 9 28 0x00064 word 38 66 6f 6f foo + 29 0x00068 str 27 61 61 "aa" + 30 0x0006b word 68 64 65 6c 65 74 65 delete + 10 31 0x00072 word 38 66 6f 6f foo + 32 0x00076 str 27 65 65 "ee" + 33 0x00079 word 68 64 65 6c 65 74 65 delete + 12 34 0x00080 word 38 66 6f 6f foo + 35 0x00084 code 16 { + 36 0x00085 prim 13 } + 37 0x00086 word 68 66 6f 72 61 6c 6c forall + 14 38 0x0008d word 38 66 6f 6f foo + 39 0x00091 str 27 63 63 "cc" + 40 0x00094 word 68 64 65 6c 65 74 65 delete + 16 41 0x0009b word 38 66 6f 6f foo + 42 0x0009f str 27 78 78 "xx" + 43 0x000a2 word 68 64 65 6c 65 74 65 delete + 18 44 0x000a9 word 38 66 6f 6f foo + 45 0x000ad code 16 { + 46 0x000ae prim 13 } + 47 0x000af word 68 66 6f 72 61 6c 6c forall + 20 48 0x000b6 word 38 66 6f 6f foo + 49 0x000ba str 27 78 78 "xx" + 50 0x000bd int 81 63 99 + 51 0x000bf word 38 70 75 74 put + 22 52 0x000c3 word 38 66 6f 6f foo + 53 0x000c7 code 16 { + 54 0x000c8 prim 13 } + 55 0x000c9 word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0016_delete_hash/code1.log.ref b/tests/0016_delete_hash/code1.log.ref new file mode 100644 index 0000000..c6ac979 --- /dev/null +++ b/tests/0016_delete_hash/code1.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d str 27 64 64 "dd" + 10 0x00020 int 81 2c 44 + 11 0x00022 str 27 65 65 "ee" + 12 0x00025 int 81 37 55 + 13 0x00027 word 18 29 ) + 14 0x00029 word 38 64 65 66 def + 3 15 0x0002d word 38 66 6f 6f foo + 16 0x00031 xref 84 1e "bb" + 17 0x00033 word 68 64 65 6c 65 74 65 delete + 4 18 0x0003a xref 84 0d foo + 19 0x0003c xref 84 1f "dd" + 20 0x0003e xref 84 0b delete + 5 21 0x00040 xref 84 13 foo + 22 0x00042 str 27 66 66 "ff" + 23 0x00045 xref 84 12 delete + 7 24 0x00047 xref 84 1a foo + 25 0x00049 code 16 { + 26 0x0004a prim 13 } + 27 0x0004b word 68 66 6f 72 61 6c 6c forall + 9 28 0x00052 xref 84 25 foo + 29 0x00054 xref 84 46 "aa" + 30 0x00056 xref 84 23 delete + 10 31 0x00058 xref 84 2b foo + 32 0x0005a xref 84 38 "ee" + 33 0x0005c xref 84 29 delete + 12 34 0x0005e xref 84 31 foo + 35 0x00060 code 16 { + 36 0x00061 prim 13 } + 37 0x00062 xref 84 17 forall + 14 38 0x00064 xref 84 37 foo + 39 0x00066 xref 84 4e "cc" + 40 0x00068 xref 84 35 delete + 16 41 0x0006a xref 84 3d foo + 42 0x0006c str 27 78 78 "xx" + 43 0x0006f xref 84 3c delete + 18 44 0x00071 xref 84 44 foo + 45 0x00073 code 16 { + 46 0x00074 prim 13 } + 47 0x00075 xref 84 2a forall + 20 48 0x00077 xref 84 4a foo + 49 0x00079 xref 84 0d "xx" + 50 0x0007b int 81 63 99 + 51 0x0007d word 38 70 75 74 put + 22 52 0x00081 xref 84 54 foo + 53 0x00083 code 16 { + 54 0x00084 prim 13 } + 55 0x00085 xref 84 3a forall diff --git a/tests/0016_delete_hash/code2.log.ref b/tests/0016_delete_hash/code2.log.ref new file mode 100644 index 0000000..5c953c9 --- /dev/null +++ b/tests/0016_delete_hash/code2.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c str 27 64 64 "dd" + 10 0x0001f int 81 2c 44 + 11 0x00021 str 27 65 65 "ee" + 12 0x00024 int 81 37 55 + 13 0x00026 prim 53 ) + 14 0x00027 prim 63 def + 3 15 0x00028 word 38 66 6f 6f foo + 16 0x0002c xref 84 1a "bb" + 17 0x0002e prim 83 14 delete + 4 18 0x00030 xref 84 08 foo + 19 0x00032 xref 84 16 "dd" + 20 0x00034 prim 83 14 delete + 5 21 0x00036 xref 84 0e foo + 22 0x00038 str 27 66 66 "ff" + 23 0x0003b prim 83 14 delete + 7 24 0x0003d xref 84 15 foo + 25 0x0003f code 16 { + 26 0x00040 prim 13 } + 27 0x00041 prim 83 0e forall + 9 28 0x00043 xref 84 1b foo + 29 0x00045 xref 84 38 "aa" + 30 0x00047 prim 83 14 delete + 10 31 0x00049 xref 84 21 foo + 32 0x0004b xref 84 2a "ee" + 33 0x0004d prim 83 14 delete + 12 34 0x0004f xref 84 27 foo + 35 0x00051 code 16 { + 36 0x00052 prim 13 } + 37 0x00053 prim 83 0e forall + 14 38 0x00055 xref 84 2d foo + 39 0x00057 xref 84 40 "cc" + 40 0x00059 prim 83 14 delete + 16 41 0x0005b xref 84 33 foo + 42 0x0005d str 27 78 78 "xx" + 43 0x00060 prim 83 14 delete + 18 44 0x00062 xref 84 3a foo + 45 0x00064 code 16 { + 46 0x00065 prim 13 } + 47 0x00066 prim 83 0e forall + 20 48 0x00068 xref 84 40 foo + 49 0x0006a xref 84 0d "xx" + 50 0x0006c int 81 63 99 + 51 0x0006e prim 83 13 put + 22 52 0x00070 xref 84 48 foo + 53 0x00072 code 16 { + 54 0x00073 prim 13 } + 55 0x00074 prim 83 0e forall diff --git a/tests/0016_delete_hash/main.gs b/tests/0016_delete_hash/main.gs new file mode 100644 index 0000000..0a3f969 --- /dev/null +++ b/tests/0016_delete_hash/main.gs @@ -0,0 +1,22 @@ +/foo ( "aa" 11 "bb" 22 "cc" 33 "dd" 44 "ee" 55 ) def + +foo "bb" delete +foo "dd" delete +foo "ff" delete + +foo { } forall + +foo "aa" delete +foo "ee" delete + +foo { } forall + +foo "cc" delete + +foo "xx" delete + +foo { } forall + +foo "xx" 99 put + +foo { } forall diff --git a/tests/0016_delete_hash/mem.log.ref b/tests/0016_delete_hash/mem.log.ref new file mode 100644 index 0000000..ccffd05 --- /dev/null +++ b/tests/0016_delete_hash/mem.log.ref @@ -0,0 +1,791 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 208] + 8: 187.01, 0x001d6b44[ 72] + 9: 188.01, 0x001d6b94[ 56] + 10: 200.01, 0x001d6bd4[ 52] + 11: 202.01, 0x001d6c10[ 72] + 12: 0.00, 0x001d6c60[14848928] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #200.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 27 64 64 a..'bb..'cc.!'dd + 81 2c 27 65 65 81 37 18 29 38 64 65 66 38 66 6f .,'ee.7.)8def8fo + 6f 27 62 62 68 64 65 6c 65 74 65 38 66 6f 6f 27 o'bbhdelete8foo' + 64 64 68 64 65 6c 65 74 65 38 66 6f 6f 27 66 66 ddhdelete8foo'ff + 68 64 65 6c 65 74 65 38 66 6f 6f 16 13 68 66 6f hdelete8foo..hfo + 72 61 6c 6c 38 66 6f 6f 27 61 61 68 64 65 6c 65 rall8foo'aahdele + 74 65 38 66 6f 6f 27 65 65 68 64 65 6c 65 74 65 te8foo'eehdelete + 38 66 6f 6f 16 13 68 66 6f 72 61 6c 6c 38 66 6f 8foo..hforall8fo + 6f 27 63 63 68 64 65 6c 65 74 65 38 66 6f 6f 27 o'cchdelete8foo' + 78 78 68 64 65 6c 65 74 65 38 66 6f 6f 16 13 68 xxhdelete8foo..h + 66 6f 72 61 6c 6c 38 66 6f 6f 27 78 78 81 63 38 forall8foo'xx.c8 + 70 75 74 38 66 6f 6f 16 13 68 66 6f 72 61 6c 6c put8foo..hforall + #187.1.1.array + [ 0] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [ 1] #191.1.1.num.int <11 (0xb)> + [ 2] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [ 3] #195.1.2.num.int <33 (0x21)> + [ 4] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [ 5] #199.1.1.num.int <55 (0x37)> + [ 6] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [ 7] #195.1.2.num.int <33 (0x21)> + [ 8] #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [ 9] #215.1.2.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0xd0 (0xd0) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.2.num.int <33 (0x21)> + #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + 65 65 ee + #199.1.1.num.int <55 (0x37)> + #200.1.1.hash + #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> => #215.1.2.num.int <99 (0x63)> + #202.1.1.array + #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + 78 78 xx + #215.1.2.num.int <99 (0x63)> diff --git a/tests/0016_delete_hash/screen.log.ref b/tests/0016_delete_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0016_delete_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0016_delete_hash/trace.log.ref b/tests/0016_delete_hash/trace.log.ref new file mode 100644 index 0000000..d134e1b --- /dev/null +++ b/tests/0016_delete_hash/trace.log.ref @@ -0,0 +1,692 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 7, 30[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1e, size 2, "dd"> + [1] #195.1.1.num.int <33 (0x21)> + [2] #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [3] #193.1.1.num.int <22 (0x16)> + [4] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x14, size 2, "bb"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [7] #13.1.2.num.prim <4 (0x4)> + [8] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x20, type 1, 44 (0x2c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <44 (0x2c)> + [1] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1e, size 2, "dd"> + [2] #195.1.1.num.int <33 (0x21)> + [3] #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #193.1.1.num.int <22 (0x16)> + [5] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x14, size 2, "bb"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [8] #13.1.2.num.prim <4 (0x4)> + [9] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x22, type 7, 35[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [1] #197.1.1.num.int <44 (0x2c)> + [2] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x1e, size 2, "dd"> + [3] #195.1.1.num.int <33 (0x21)> + [4] #194.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [5] #193.1.1.num.int <22 (0x16)> + [6] #192.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x14, size 2, "bb"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> + [9] #13.1.2.num.prim <4 (0x4)> + [10] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x25, type 1, 55 (0x37) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <55 (0x37)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [2] #197.1.1.num.int <44 (0x2c)> + [3] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x1e, size 2, "dd"> + [4] #195.1.1.num.int <33 (0x21)> + [5] #194.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [6] #193.1.1.num.int <22 (0x16)> + [7] #192.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x14, size 2, "bb"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> + [10] #13.1.2.num.prim <4 (0x4)> + [11] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x27, type 8, 40[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x29, type 8, 42[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#200.1.1.hash +GC: --#200.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2d, type 8, 46[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x31, type 7, 50[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x32, size 2, "bb"> + [1] #200.1.2.hash +IP: #186:0x34, type 8, 53[6] +GC: --#192.1.1.mem.str.ro +GC: --#186.1.8.mem.ro +GC: --#193.1.1.num.int +GC: --#201.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3b, type 8, 60[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x3f, type 7, 64[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x40, size 2, "dd"> + [1] #200.1.2.hash +IP: #186:0x42, type 8, 67[6] +GC: --#196.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#197.1.1.num.int +GC: --#203.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x4d, type 7, 78[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4e, size 2, "ff"> + [1] #200.1.2.hash +IP: #186:0x50, type 8, 81[6] +GC: --#204.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x57, type 8, 88[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x5b, type 6, 92[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x5c, size 1> + [1] #200.1.2.hash +IP: #186:0x5d, type 8, 94[6] +GC: ++#190.1.1.mem.str.ro +GC: ++#191.1.1.num.int +GC: ++#205.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#205.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <11 (0xb)> + [1] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#194.1.1.mem.str.ro +GC: ++#195.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #191.1.2.num.int <11 (0xb)> + [3] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#198.1.1.mem.str.ro +GC: ++#199.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.2.num.int <11 (0xb)> + [5] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#205.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.2.num.int <11 (0xb)> + [5] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x64, type 8, 101[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.2.num.int <55 (0x37)> + [2] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.2.num.int <11 (0xb)> + [6] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x68, type 7, 105[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x69, size 2, "aa"> + [1] #200.1.2.hash + [2] #199.1.2.num.int <55 (0x37)> + [3] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.2.num.int <11 (0xb)> + [7] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x6b, type 8, 108[6] +GC: --#190.1.2.mem.str.ro +GC: --#191.1.2.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x72, type 8, 115[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.2.num.int <55 (0x37)> + [2] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x76, type 7, 119[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x77, size 2, "ee"> + [1] #200.1.2.hash + [2] #199.1.2.num.int <55 (0x37)> + [3] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x79, type 8, 122[6] +GC: --#198.1.2.mem.str.ro +GC: --#199.1.2.num.int +GC: --#208.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <55 (0x37)> + [1] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x80, type 8, 129[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.1.num.int <55 (0x37)> + [2] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x84, type 6, 133[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x85, size 1> + [1] #200.1.2.hash + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x86, type 8, 135[6] +GC: ++#194.1.2.mem.str.ro +GC: ++#195.1.2.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#209.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <33 (0x21)> + [1] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.3.num.int <33 (0x21)> + [5] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <33 (0x21)> + [1] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.3.num.int <33 (0x21)> + [5] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x8d, type 8, 142[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.3.num.int <33 (0x21)> + [2] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.3.num.int <33 (0x21)> + [6] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x91, type 7, 146[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x92, size 2, "cc"> + [1] #200.1.2.hash + [2] #195.1.3.num.int <33 (0x21)> + [3] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.3.num.int <33 (0x21)> + [7] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x94, type 8, 149[6] +GC: --#194.1.3.mem.str.ro +GC: --#195.1.3.num.int +GC: --#211.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x9b, type 8, 156[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x9f, type 7, 160[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xa0, size 2, "xx"> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xa2, type 8, 163[6] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xa9, type 8, 170[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xad, type 6, 174[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0xae, size 1> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xaf, type 8, 176[6] +GC: --#213.1.1.mem.code.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xb6, type 8, 183[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xba, type 7, 187[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xbd, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <99 (0x63)> + [1] #214.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #200.1.2.hash + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [5] #199.1.1.num.int <55 (0x37)> + [6] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [7] #195.1.2.num.int <33 (0x21)> + [8] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [9] #191.1.1.num.int <11 (0xb)> + [10] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xbf, type 8, 192[3] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#215.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc3, type 8, 196[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc7, type 6, 200[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0xc8, size 1> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc9, type 8, 202[6] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: ++#216.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#216.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #217.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <99 (0x63)> + [1] #214.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> +IP: #216:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#217.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#216.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <99 (0x63)> + [1] #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> diff --git a/tests/0017_dup/basic.log.ref b/tests/0017_dup/basic.log.ref new file mode 100644 index 0000000..d352412 --- /dev/null +++ b/tests/0017_dup/basic.log.ref @@ -0,0 +1,28 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <200 (0xc8)> + [1] #xxxx.1.3.num.int <200 (0xc8)> + [2] #xxxx.1.3.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0017_dup/code.log.ref b/tests/0017_dup/code.log.ref new file mode 100644 index 0000000..7615bcc --- /dev/null +++ b/tests/0017_dup/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 64 75 70 dup + 4 0x00011 word 38 64 75 70 dup diff --git a/tests/0017_dup/code1.log.ref b/tests/0017_dup/code1.log.ref new file mode 100644 index 0000000..a898c4b --- /dev/null +++ b/tests/0017_dup/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 64 75 70 dup + 4 0x00011 xref 44 dup diff --git a/tests/0017_dup/code2.log.ref b/tests/0017_dup/code2.log.ref new file mode 100644 index 0000000..3fa78a0 --- /dev/null +++ b/tests/0017_dup/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 16 dup + 4 0x0000f prim 83 16 dup diff --git a/tests/0017_dup/main.gs b/tests/0017_dup/main.gs new file mode 100644 index 0000000..1e7ae84 --- /dev/null +++ b/tests/0017_dup/main.gs @@ -0,0 +1 @@ +100 200 dup dup diff --git a/tests/0017_dup/mem.log.ref b/tests/0017_dup/mem.log.ref new file mode 100644 index 0000000..ecc5c72 --- /dev/null +++ b/tests/0017_dup/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 64 75 uQ..Bz.`.d...8du + 70 38 64 75 70 p8dup + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.3.num.int <200 (0xc8)> + [ 2] #190.1.3.num.int <200 (0xc8)> + [ 3] #190.1.3.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x15 (0x15) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.3.num.int <200 (0xc8)> diff --git a/tests/0017_dup/screen.log.ref b/tests/0017_dup/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0017_dup/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0017_dup/trace.log.ref b/tests/0017_dup/trace.log.ref new file mode 100644 index 0000000..a04ba4d --- /dev/null +++ b/tests/0017_dup/trace.log.ref @@ -0,0 +1,33 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <200 (0xc8)> + [1] #190.1.2.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <200 (0xc8)> + [1] #190.1.3.num.int <200 (0xc8)> + [2] #190.1.3.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0018_pop/basic.log.ref b/tests/0018_pop/basic.log.ref new file mode 100644 index 0000000..d50d0dd --- /dev/null +++ b/tests/0018_pop/basic.log.ref @@ -0,0 +1,39 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0018_pop/code.log.ref b/tests/0018_pop/code.log.ref new file mode 100644 index 0000000..0653c6a --- /dev/null +++ b/tests/0018_pop/code.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 38 70 6f 70 pop + 6 0x00017 word 38 70 6f 70 pop diff --git a/tests/0018_pop/code1.log.ref b/tests/0018_pop/code1.log.ref new file mode 100644 index 0000000..775b5ef --- /dev/null +++ b/tests/0018_pop/code1.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 38 70 6f 70 pop + 6 0x00017 xref 44 pop diff --git a/tests/0018_pop/code2.log.ref b/tests/0018_pop/code2.log.ref new file mode 100644 index 0000000..0d28559 --- /dev/null +++ b/tests/0018_pop/code2.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 prim 83 17 pop + 6 0x00015 prim 83 17 pop diff --git a/tests/0018_pop/main.gs b/tests/0018_pop/main.gs new file mode 100644 index 0000000..e8ec5ba --- /dev/null +++ b/tests/0018_pop/main.gs @@ -0,0 +1 @@ +100 200 300 400 pop pop diff --git a/tests/0018_pop/mem.log.ref b/tests/0018_pop/mem.log.ref new file mode 100644 index 0000000..f16b3db --- /dev/null +++ b/tests/0018_pop/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 193.01, 0x001d6b20[ 72] + 11: 0.00, 0x001d6b70[14849168] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 38 70 6f 70 38 70 6f 70 ...8pop8pop + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x1b (0x1b) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #193.1.1.array diff --git a/tests/0018_pop/screen.log.ref b/tests/0018_pop/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0018_pop/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0018_pop/trace.log.ref b/tests/0018_pop/trace.log.ref new file mode 100644 index 0000000..a7c6ca1 --- /dev/null +++ b/tests/0018_pop/trace.log.ref @@ -0,0 +1,46 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 8, 20[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x17, type 8, 24[3] +GC: --#191.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0019_exch/basic.log.ref b/tests/0019_exch/basic.log.ref new file mode 100644 index 0000000..1259850 --- /dev/null +++ b/tests/0019_exch/basic.log.ref @@ -0,0 +1,33 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0019_exch/code.log.ref b/tests/0019_exch/code.log.ref new file mode 100644 index 0000000..0beba3c --- /dev/null +++ b/tests/0019_exch/code.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 48 65 78 63 68 exch diff --git a/tests/0019_exch/code1.log.ref b/tests/0019_exch/code1.log.ref new file mode 100644 index 0000000..0beba3c --- /dev/null +++ b/tests/0019_exch/code1.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 48 65 78 63 68 exch diff --git a/tests/0019_exch/code2.log.ref b/tests/0019_exch/code2.log.ref new file mode 100644 index 0000000..a434c13 --- /dev/null +++ b/tests/0019_exch/code2.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 prim 83 18 exch diff --git a/tests/0019_exch/main.gs b/tests/0019_exch/main.gs new file mode 100644 index 0000000..108156c --- /dev/null +++ b/tests/0019_exch/main.gs @@ -0,0 +1 @@ +100 200 300 400 exch diff --git a/tests/0019_exch/mem.log.ref b/tests/0019_exch/mem.log.ref new file mode 100644 index 0000000..41f2291 --- /dev/null +++ b/tests/0019_exch/mem.log.ref @@ -0,0 +1,758 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 48 65 78 63 68 ...Hexch + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + [ 2] #192.1.1.num.int <400 (0x190)> + [ 3] #191.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x18 (0x18) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> + #192.1.1.num.int <400 (0x190)> diff --git a/tests/0019_exch/screen.log.ref b/tests/0019_exch/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0019_exch/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0019_exch/trace.log.ref b/tests/0019_exch/trace.log.ref new file mode 100644 index 0000000..ee435de --- /dev/null +++ b/tests/0019_exch/trace.log.ref @@ -0,0 +1,39 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 8, 20[4] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #192.1.1.num.int <400 (0x190)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0020_rot/basic.log.ref b/tests/0020_rot/basic.log.ref new file mode 100644 index 0000000..b55a3b9 --- /dev/null +++ b/tests/0020_rot/basic.log.ref @@ -0,0 +1,25 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> diff --git a/tests/0020_rot/code.log.ref b/tests/0020_rot/code.log.ref new file mode 100644 index 0000000..84498fc --- /dev/null +++ b/tests/0020_rot/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 38 72 6f 74 rot diff --git a/tests/0020_rot/code1.log.ref b/tests/0020_rot/code1.log.ref new file mode 100644 index 0000000..84498fc --- /dev/null +++ b/tests/0020_rot/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 38 72 6f 74 rot diff --git a/tests/0020_rot/code2.log.ref b/tests/0020_rot/code2.log.ref new file mode 100644 index 0000000..1c452db --- /dev/null +++ b/tests/0020_rot/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 prim 83 19 rot diff --git a/tests/0020_rot/main.gs b/tests/0020_rot/main.gs new file mode 100644 index 0000000..8d80260 --- /dev/null +++ b/tests/0020_rot/main.gs @@ -0,0 +1 @@ +100 200 300 rot diff --git a/tests/0020_rot/mem.log.ref b/tests/0020_rot/mem.log.ref new file mode 100644 index 0000000..215ab6c --- /dev/null +++ b/tests/0020_rot/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 20] + 8: 187.01, 0x001d6a88[ 72] + 9: 188.01, 0x001d6ad8[ 56] + 10: 0.00, 0x001d6b18[14849256] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 38 72 6f 74 8rot + #187.1.1.array + [ 0] #190.1.1.num.int <200 (0xc8)> + [ 1] #191.1.1.num.int <300 (0x12c)> + [ 2] #189.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x14 (0x14) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> diff --git a/tests/0020_rot/screen.log.ref b/tests/0020_rot/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0020_rot/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0020_rot/trace.log.ref b/tests/0020_rot/trace.log.ref new file mode 100644 index 0000000..ce392e7 --- /dev/null +++ b/tests/0020_rot/trace.log.ref @@ -0,0 +1,30 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 8, 17[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> diff --git a/tests/0021_over/basic.log.ref b/tests/0021_over/basic.log.ref new file mode 100644 index 0000000..a77ad5b --- /dev/null +++ b/tests/0021_over/basic.log.ref @@ -0,0 +1,27 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0021_over/code.log.ref b/tests/0021_over/code.log.ref new file mode 100644 index 0000000..73b8d59 --- /dev/null +++ b/tests/0021_over/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 48 6f 76 65 72 over diff --git a/tests/0021_over/code1.log.ref b/tests/0021_over/code1.log.ref new file mode 100644 index 0000000..73b8d59 --- /dev/null +++ b/tests/0021_over/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 48 6f 76 65 72 over diff --git a/tests/0021_over/code2.log.ref b/tests/0021_over/code2.log.ref new file mode 100644 index 0000000..562e18a --- /dev/null +++ b/tests/0021_over/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 prim 83 1b over diff --git a/tests/0021_over/main.gs b/tests/0021_over/main.gs new file mode 100644 index 0000000..c3a57bd --- /dev/null +++ b/tests/0021_over/main.gs @@ -0,0 +1 @@ +100 200 300 over diff --git a/tests/0021_over/mem.log.ref b/tests/0021_over/mem.log.ref new file mode 100644 index 0000000..0d2ba93 --- /dev/null +++ b/tests/0021_over/mem.log.ref @@ -0,0 +1,757 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 48 6f 76 65 72 Hover + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.2.num.int <200 (0xc8)> + [ 2] #191.1.1.num.int <300 (0x12c)> + [ 3] #190.1.2.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x15 (0x15) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.2.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> diff --git a/tests/0021_over/screen.log.ref b/tests/0021_over/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0021_over/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0021_over/trace.log.ref b/tests/0021_over/trace.log.ref new file mode 100644 index 0000000..ada139b --- /dev/null +++ b/tests/0021_over/trace.log.ref @@ -0,0 +1,32 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 8, 17[4] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <200 (0xc8)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.2.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0022_index/basic.log.ref b/tests/0022_index/basic.log.ref new file mode 100644 index 0000000..dce4a6e --- /dev/null +++ b/tests/0022_index/basic.log.ref @@ -0,0 +1,100 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <500 (0x1f4)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <500 (0x1f4)> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <500 (0x1f4)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0022_index/code.log.ref b/tests/0022_index/code.log.ref new file mode 100644 index 0000000..fc1fd6b --- /dev/null +++ b/tests/0022_index/code.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 word 58 69 6e 64 65 78 index + 4 8 0x0001d int 21 2 + 9 0x0001e word 58 69 6e 64 65 78 index + 5 10 0x00024 int 61 6 + 11 0x00025 word 58 69 6e 64 65 78 index diff --git a/tests/0022_index/code1.log.ref b/tests/0022_index/code1.log.ref new file mode 100644 index 0000000..8214130 --- /dev/null +++ b/tests/0022_index/code1.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 word 58 69 6e 64 65 78 index + 4 8 0x0001d int 21 2 + 9 0x0001e xref 74 index + 5 10 0x0001f int 61 6 + 11 0x00020 xref 84 09 index diff --git a/tests/0022_index/code2.log.ref b/tests/0022_index/code2.log.ref new file mode 100644 index 0000000..0cec8fc --- /dev/null +++ b/tests/0022_index/code2.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 prim 83 1c index + 4 8 0x00019 int 21 2 + 9 0x0001a prim 83 1c index + 5 10 0x0001c int 61 6 + 11 0x0001d prim 83 1c index diff --git a/tests/0022_index/main.gs b/tests/0022_index/main.gs new file mode 100644 index 0000000..43ee56d --- /dev/null +++ b/tests/0022_index/main.gs @@ -0,0 +1,5 @@ +100 200 300 400 500 + +0 index +2 index +6 index diff --git a/tests/0022_index/mem.log.ref b/tests/0022_index/mem.log.ref new file mode 100644 index 0000000..df11a39 --- /dev/null +++ b/tests/0022_index/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 44] + 8: 187.01, 0x001d6aa0[ 72] + 9: 188.01, 0x001d6af0[ 56] + 10: 195.01, 0x001d6b30[ 72] + 11: 0.00, 0x001d6b80[14849152] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 91 f4 01 01 58 69 6e 64 65 78 21 58 69 .......Xindex!Xi + 6e 64 65 78 61 58 69 6e 64 65 78 ndexaXindex + #187.1.1.array + [ 0] #189.1.2.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + [ 2] #191.1.1.num.int <300 (0x12c)> + [ 3] #192.1.2.num.int <400 (0x190)> + [ 4] #193.1.2.num.int <500 (0x1f4)> + [ 5] #193.1.2.num.int <500 (0x1f4)> + [ 6] #192.1.2.num.int <400 (0x190)> + [ 7] #189.1.2.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x2b (0x2b) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.2.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> + #192.1.2.num.int <400 (0x190)> + #193.1.2.num.int <500 (0x1f4)> + #195.1.1.array diff --git a/tests/0022_index/screen.log.ref b/tests/0022_index/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0022_index/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0022_index/trace.log.ref b/tests/0022_index/trace.log.ref new file mode 100644 index 0000000..757851a --- /dev/null +++ b/tests/0022_index/trace.log.ref @@ -0,0 +1,112 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 1, 500 (0x1f4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <500 (0x1f4)> + [1] #192.1.1.num.int <400 (0x190)> + [2] #191.1.1.num.int <300 (0x12c)> + [3] #190.1.1.num.int <200 (0xc8)> + [4] #189.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.int <500 (0x1f4)> + [2] #192.1.1.num.int <400 (0x190)> + [3] #191.1.1.num.int <300 (0x12c)> + [4] #190.1.1.num.int <200 (0xc8)> + [5] #189.1.1.num.int <100 (0x64)> +IP: #186:0x17, type 8, 24[5] +GC: --#194.1.1.num.int +GC: ++#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <500 (0x1f4)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #192.1.1.num.int <400 (0x190)> + [3] #191.1.1.num.int <300 (0x12c)> + [4] #190.1.1.num.int <200 (0xc8)> + [5] #189.1.1.num.int <100 (0x64)> +IP: #186:0x1d, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <2 (0x2)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #192.1.1.num.int <400 (0x190)> + [4] #191.1.1.num.int <300 (0x12c)> + [5] #190.1.1.num.int <200 (0xc8)> + [6] #189.1.1.num.int <100 (0x64)> +IP: #186:0x1e, type 8, 31[5] +GC: --#196.1.1.num.int +GC: ++#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.num.int <400 (0x190)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #192.1.2.num.int <400 (0x190)> + [4] #191.1.1.num.int <300 (0x12c)> + [5] #190.1.1.num.int <200 (0xc8)> + [6] #189.1.1.num.int <100 (0x64)> +IP: #186:0x24, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <6 (0x6)> + [1] #192.1.2.num.int <400 (0x190)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #193.1.2.num.int <500 (0x1f4)> + [4] #192.1.2.num.int <400 (0x190)> + [5] #191.1.1.num.int <300 (0x12c)> + [6] #190.1.1.num.int <200 (0xc8)> + [7] #189.1.1.num.int <100 (0x64)> +IP: #186:0x25, type 8, 38[5] +GC: --#197.1.1.num.int +GC: ++#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.2.num.int <100 (0x64)> + [1] #192.1.2.num.int <400 (0x190)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #193.1.2.num.int <500 (0x1f4)> + [4] #192.1.2.num.int <400 (0x190)> + [5] #191.1.1.num.int <300 (0x12c)> + [6] #190.1.1.num.int <200 (0xc8)> + [7] #189.1.2.num.int <100 (0x64)> diff --git a/tests/0023_roll/basic.log.ref b/tests/0023_roll/basic.log.ref new file mode 100644 index 0000000..1105d52 --- /dev/null +++ b/tests/0023_roll/basic.log.ref @@ -0,0 +1,193 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <3 (0x3)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <3 (0x3)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <3 (0x3)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <7 (0x7)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <3 (0x3)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <3 (0x3)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <3 (0x3)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <3 (0x3)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> diff --git a/tests/0023_roll/code.log.ref b/tests/0023_roll/code.log.ref new file mode 100644 index 0000000..0b16770 --- /dev/null +++ b/tests/0023_roll/code.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 word 48 72 6f 6c 6c roll + 3 11 0x00016 int 51 5 + 12 0x00017 int 81 fe -2 + 13 0x00019 word 48 72 6f 6c 6c roll + 4 14 0x0001e int 01 0 + 15 0x0001f int 01 0 + 16 0x00020 word 48 72 6f 6c 6c roll + 5 17 0x00025 int 71 7 + 18 0x00026 int 01 0 + 19 0x00027 word 48 72 6f 6c 6c roll diff --git a/tests/0023_roll/code1.log.ref b/tests/0023_roll/code1.log.ref new file mode 100644 index 0000000..a1232f3 --- /dev/null +++ b/tests/0023_roll/code1.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 word 48 72 6f 6c 6c roll + 3 11 0x00016 int 51 5 + 12 0x00017 int 81 fe -2 + 13 0x00019 xref 84 08 roll + 4 14 0x0001b int 01 0 + 15 0x0001c int 01 0 + 16 0x0001d xref 84 0c roll + 5 17 0x0001f int 71 7 + 18 0x00020 int 01 0 + 19 0x00021 xref 84 10 roll diff --git a/tests/0023_roll/code2.log.ref b/tests/0023_roll/code2.log.ref new file mode 100644 index 0000000..4758548 --- /dev/null +++ b/tests/0023_roll/code2.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 prim 83 1a roll + 3 11 0x00013 int 51 5 + 12 0x00014 int 81 fe -2 + 13 0x00016 prim 83 1a roll + 4 14 0x00018 int 01 0 + 15 0x00019 int 01 0 + 16 0x0001a prim 83 1a roll + 5 17 0x0001c int 71 7 + 18 0x0001d int 01 0 + 19 0x0001e prim 83 1a roll diff --git a/tests/0023_roll/main.gs b/tests/0023_roll/main.gs new file mode 100644 index 0000000..c8d5c1f --- /dev/null +++ b/tests/0023_roll/main.gs @@ -0,0 +1,5 @@ +1 2 3 4 5 6 7 +7 1 roll +5 -2 roll +0 0 roll +7 0 roll diff --git a/tests/0023_roll/mem.log.ref b/tests/0023_roll/mem.log.ref new file mode 100644 index 0000000..ecb9fe5 --- /dev/null +++ b/tests/0023_roll/mem.log.ref @@ -0,0 +1,767 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 44] + 8: 187.01, 0x001d6aa0[ 72] + 9: 188.01, 0x001d6af0[ 56] + 10: 198.01, 0x001d6b30[ 72] + 11: 0.00, 0x001d6b80[14849152] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 11 21 31 41 51 61 71 71 uQ..Bz.`.!1AQaqq + 11 48 72 6f 6c 6c 51 81 fe 48 72 6f 6c 6c 01 01 .HrollQ..Hroll.. + 48 72 6f 6c 6c 71 01 48 72 6f 6c 6c Hrollq.Hroll + #187.1.1.array + [ 0] #195.1.1.num.int <7 (0x7)> + [ 1] #189.1.1.num.int <1 (0x1)> + [ 2] #192.1.1.num.int <4 (0x4)> + [ 3] #193.1.1.num.int <5 (0x5)> + [ 4] #194.1.1.num.int <6 (0x6)> + [ 5] #190.1.1.num.int <2 (0x2)> + [ 6] #191.1.1.num.int <3 (0x3)> + #188.1.1.ctx.func + type 17, ip 0x2c (0x2c) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <1 (0x1)> + #190.1.1.num.int <2 (0x2)> + #191.1.1.num.int <3 (0x3)> + #192.1.1.num.int <4 (0x4)> + #193.1.1.num.int <5 (0x5)> + #194.1.1.num.int <6 (0x6)> + #195.1.1.num.int <7 (0x7)> + #198.1.1.array diff --git a/tests/0023_roll/screen.log.ref b/tests/0023_roll/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0023_roll/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0023_roll/trace.log.ref b/tests/0023_roll/trace.log.ref new file mode 100644 index 0000000..3aa2841 --- /dev/null +++ b/tests/0023_roll/trace.log.ref @@ -0,0 +1,213 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1 (0x1)> +IP: #186:0x9, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2 (0x2)> + [1] #189.1.1.num.int <1 (0x1)> +IP: #186:0xa, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #189.1.1.num.int <1 (0x1)> +IP: #186:0xb, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <4 (0x4)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #189.1.1.num.int <1 (0x1)> +IP: #186:0xc, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #192.1.1.num.int <4 (0x4)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #189.1.1.num.int <1 (0x1)> +IP: #186:0xd, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #192.1.1.num.int <4 (0x4)> + [3] #191.1.1.num.int <3 (0x3)> + [4] #190.1.1.num.int <2 (0x2)> + [5] #189.1.1.num.int <1 (0x1)> +IP: #186:0xe, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <7 (0x7)> + [1] #194.1.1.num.int <6 (0x6)> + [2] #193.1.1.num.int <5 (0x5)> + [3] #192.1.1.num.int <4 (0x4)> + [4] #191.1.1.num.int <3 (0x3)> + [5] #190.1.1.num.int <2 (0x2)> + [6] #189.1.1.num.int <1 (0x1)> +IP: #186:0xf, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <7 (0x7)> + [1] #195.1.1.num.int <7 (0x7)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #191.1.1.num.int <3 (0x3)> + [6] #190.1.1.num.int <2 (0x2)> + [7] #189.1.1.num.int <1 (0x1)> +IP: #186:0x10, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <1 (0x1)> + [1] #196.1.1.num.int <7 (0x7)> + [2] #195.1.1.num.int <7 (0x7)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #191.1.1.num.int <3 (0x3)> + [7] #190.1.1.num.int <2 (0x2)> + [8] #189.1.1.num.int <1 (0x1)> +IP: #186:0x11, type 8, 18[4] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #192.1.1.num.int <4 (0x4)> + [3] #191.1.1.num.int <3 (0x3)> + [4] #190.1.1.num.int <2 (0x2)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x16, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <5 (0x5)> + [1] #194.1.1.num.int <6 (0x6)> + [2] #193.1.1.num.int <5 (0x5)> + [3] #192.1.1.num.int <4 (0x4)> + [4] #191.1.1.num.int <3 (0x3)> + [5] #190.1.1.num.int <2 (0x2)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x17, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <5 (0x5)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #191.1.1.num.int <3 (0x3)> + [6] #190.1.1.num.int <2 (0x2)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x19, type 8, 26[4] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x1e, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x1f, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <0 (0x0)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #194.1.1.num.int <6 (0x6)> + [5] #193.1.1.num.int <5 (0x5)> + [6] #192.1.1.num.int <4 (0x4)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x20, type 8, 33[4] +GC: --#202.1.1.num.int +GC: --#201.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x25, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <7 (0x7)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x26, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <0 (0x0)> + [1] #203.1.1.num.int <7 (0x7)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #194.1.1.num.int <6 (0x6)> + [5] #193.1.1.num.int <5 (0x5)> + [6] #192.1.1.num.int <4 (0x4)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x27, type 8, 40[4] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> diff --git a/tests/0024_exec/basic.log.ref b/tests/0024_exec/basic.log.ref new file mode 100644 index 0000000..15de3b9 --- /dev/null +++ b/tests/0024_exec/basic.log.ref @@ -0,0 +1,477 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ref.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_4"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "foo_5"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_4"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "foo_5"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.3.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_3"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <400 (0x190)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <400 (0x190)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [6] #xxxx.1.1.num.int <400 (0x190)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [6] #xxxx.1.1.num.int <400 (0x190)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "foo_5"> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.11.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0024_exec/code.log.ref b/tests/0024_exec/code.log.ref new file mode 100644 index 0000000..79513de --- /dev/null +++ b/tests/0024_exec/code.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001e ref 59 66 6f 6f 5f 31 /foo_1 + 9 0x00024 word 38 64 65 66 def + 3 10 0x00028 ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x0002e int 81 32 50 + 12 0x00030 word 38 64 65 66 def + 4 13 0x00034 ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x0003a word 18 28 ( + 15 0x0003c str 57 66 6f 6f 5f 35 "foo_5" + 16 0x00042 ref 59 66 6f 6f 5f 31 /foo_1 + 17 0x00048 word 18 29 ) + 18 0x0004a word 38 64 65 66 def + 5 19 0x0004e ref 59 66 6f 6f 5f 31 /foo_1 + 20 0x00054 word 48 65 78 65 63 exec + 7 21 0x00059 code 76 { + 22 0x0005a int 91 2c 01 300 + 23 0x0005d int 91 90 01 400 + 24 0x00060 prim 13 } + 25 0x00061 word 48 65 78 65 63 exec + 9 26 0x00066 ref 59 66 6f 6f 5f 32 /foo_2 + 27 0x0006c word 48 65 78 65 63 exec + 10 28 0x00071 word 58 66 6f 6f 5f 32 foo_2 + 29 0x00077 word 48 65 78 65 63 exec + 11 30 0x0007c ref 59 66 6f 6f 5f 33 /foo_3 + 31 0x00082 word 48 65 78 65 63 exec + 13 32 0x00087 str 37 61 62 63 "abc" + 33 0x0008b word 48 65 78 65 63 exec + 14 34 0x00090 int 81 1e 30 + 35 0x00092 word 48 65 78 65 63 exec + 15 36 0x00097 nil 00 nil + 37 0x00098 word 48 65 78 65 63 exec + 16 38 0x0009d word 58 66 6f 6f 5f 34 foo_4 + 39 0x000a3 str 57 66 6f 6f 5f 35 "foo_5" + 40 0x000a9 word 38 67 65 74 get + 41 0x000ad word 48 65 78 65 63 exec diff --git a/tests/0024_exec/code1.log.ref b/tests/0024_exec/code1.log.ref new file mode 100644 index 0000000..3f550d9 --- /dev/null +++ b/tests/0024_exec/code1.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001e xref 84 16 /foo_1 + 9 0x00020 xref 84 0c def + 3 10 0x00022 ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x00028 int 81 32 50 + 12 0x0002a xref 84 16 def + 4 13 0x0002c ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x00032 word 18 28 ( + 15 0x00034 str 57 66 6f 6f 5f 35 "foo_5" + 16 0x0003a xref 84 32 /foo_1 + 17 0x0003c word 18 29 ) + 18 0x0003e xref 84 2a def + 5 19 0x00040 xref 84 38 /foo_1 + 20 0x00042 word 48 65 78 65 63 exec + 7 21 0x00047 code 76 { + 22 0x00048 int 91 2c 01 300 + 23 0x0004b int 91 90 01 400 + 24 0x0004e prim 13 } + 25 0x0004f xref 84 0d exec + 9 26 0x00051 xref 84 39 /foo_2 + 27 0x00053 xref 84 11 exec + 10 28 0x00055 word 58 66 6f 6f 5f 32 foo_2 + 29 0x0005b xref 84 19 exec + 11 30 0x0005d xref 84 3b /foo_3 + 31 0x0005f xref 84 1d exec + 13 32 0x00061 str 37 61 62 63 "abc" + 33 0x00065 xref 84 23 exec + 14 34 0x00067 int 81 1e 30 + 35 0x00069 xref 84 27 exec + 15 36 0x0006b nil 00 nil + 37 0x0006c xref 84 2a exec + 16 38 0x0006e word 58 66 6f 6f 5f 34 foo_4 + 39 0x00074 xref 84 40 "foo_5" + 40 0x00076 word 38 67 65 74 get + 41 0x0007a xref 84 38 exec diff --git a/tests/0024_exec/code2.log.ref b/tests/0024_exec/code2.log.ref new file mode 100644 index 0000000..a5e248c --- /dev/null +++ b/tests/0024_exec/code2.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 prim 63 def + 2 7 0x00015 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001b xref 84 13 /foo_1 + 9 0x0001d prim 63 def + 3 10 0x0001e ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x00024 int 81 32 50 + 12 0x00026 prim 63 def + 4 13 0x00027 ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x0002d prim 43 ( + 15 0x0002e str 57 66 6f 6f 5f 35 "foo_5" + 16 0x00034 xref 84 2c /foo_1 + 17 0x00036 prim 53 ) + 18 0x00037 prim 63 def + 5 19 0x00038 xref 84 30 /foo_1 + 20 0x0003a prim 83 1d exec + 7 21 0x0003c code 76 { + 22 0x0003d int 91 2c 01 300 + 23 0x00040 int 91 90 01 400 + 24 0x00043 prim 13 } + 25 0x00044 prim 83 1d exec + 9 26 0x00046 xref 84 31 /foo_2 + 27 0x00048 prim 83 1d exec + 10 28 0x0004a word 58 66 6f 6f 5f 32 foo_2 + 29 0x00050 prim 83 1d exec + 11 30 0x00052 xref 84 34 /foo_3 + 31 0x00054 prim 83 1d exec + 13 32 0x00056 str 37 61 62 63 "abc" + 33 0x0005a prim 83 1d exec + 14 34 0x0005c int 81 1e 30 + 35 0x0005e prim 83 1d exec + 15 36 0x00060 nil 00 nil + 37 0x00061 prim 83 1d exec + 16 38 0x00063 word 58 66 6f 6f 5f 34 foo_4 + 39 0x00069 xref 84 3b "foo_5" + 40 0x0006b prim 83 12 get + 41 0x0006d prim 83 1d exec diff --git a/tests/0024_exec/main.gs b/tests/0024_exec/main.gs new file mode 100644 index 0000000..7888dab --- /dev/null +++ b/tests/0024_exec/main.gs @@ -0,0 +1,16 @@ +/foo_1 { 10 20 } def +/foo_2 /foo_1 def +/foo_3 50 def +/foo_4 ( "foo_5" /foo_1 ) def +/foo_1 exec + +{ 300 400 } exec + +/foo_2 exec +foo_2 exec +/foo_3 exec + +"abc" exec +30 exec +nil exec +foo_4 "foo_5" get exec diff --git a/tests/0024_exec/mem.log.ref b/tests/0024_exec/mem.log.ref new file mode 100644 index 0000000..812a626 --- /dev/null +++ b/tests/0024_exec/mem.log.ref @@ -0,0 +1,811 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 180] + 8: 187.01, 0x001d6b28[ 72] + 9: 188.01, 0x001d6b78[ 56] + 10: 198.01, 0x001d6bb8[ 20] + 11: 0.00, 0x001d6bd4[ 56] + 12: 201.01, 0x001d6c14[ 72] + 13: 0.00, 0x001d6c64[14848924] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> => #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 5> + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x19, size 5, "foo_2"> => #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x29, size 5, "foo_3"> => #194.1.2.num.int <50 (0x32)> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x35, size 5, "foo_4"> => #198.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.10.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 56 81 uQ..Bz.`Yfoo_1V. + 0a 81 14 13 38 64 65 66 59 66 6f 6f 5f 32 59 66 ....8defYfoo_2Yf + 6f 6f 5f 31 38 64 65 66 59 66 6f 6f 5f 33 81 32 oo_18defYfoo_3.2 + 38 64 65 66 59 66 6f 6f 5f 34 18 28 57 66 6f 6f 8defYfoo_4.(Wfoo + 5f 35 59 66 6f 6f 5f 31 18 29 38 64 65 66 59 66 _5Yfoo_1.)8defYf + 6f 6f 5f 31 48 65 78 65 63 76 91 2c 01 91 90 01 oo_1Hexecv.,.... + 13 48 65 78 65 63 59 66 6f 6f 5f 32 48 65 78 65 .HexecYfoo_2Hexe + 63 58 66 6f 6f 5f 32 48 65 78 65 63 59 66 6f 6f cXfoo_2HexecYfoo + 5f 33 48 65 78 65 63 37 61 62 63 48 65 78 65 63 _3Hexec7abcHexec + 81 1e 48 65 78 65 63 00 48 65 78 65 63 58 66 6f ..Hexec.HexecXfo + 6f 5f 34 57 66 6f 6f 5f 35 38 67 65 74 48 65 78 o_4Wfoo_58getHex + 65 63 ec + #187.1.1.array + [ 0] #202.1.1.num.int <10 (0xa)> + [ 1] #203.1.1.num.int <20 (0x14)> + [ 2] #206.1.1.num.int <300 (0x12c)> + [ 3] #207.1.1.num.int <400 (0x190)> + [ 4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [ 5] #210.1.1.num.int <10 (0xa)> + [ 6] #211.1.1.num.int <20 (0x14)> + [ 7] #194.1.2.num.int <50 (0x32)> + [ 8] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [ 9] #214.1.1.num.int <30 (0x1e)> + [10] #0.0.nil + [11] #217.1.1.num.int <10 (0xa)> + [12] #218.1.1.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0xb2 (0xb2) + code #186.1.10.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 5> + 81 0a 81 14 13 ..... + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x19, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x29, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #194.1.2.num.int <50 (0x32)> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x35, size 5, "foo_4"> + 66 6f 6f 5f 34 foo_4 + #196.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x3d, size 5, "foo_5"> + 66 6f 6f 5f 35 foo_5 + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #198.1.1.hash + #196.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x3d, size 5, "foo_5"> => #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + #201.1.1.array + #202.1.1.num.int <10 (0xa)> + #203.1.1.num.int <20 (0x14)> + #206.1.1.num.int <300 (0x12c)> + #207.1.1.num.int <400 (0x190)> + #210.1.1.num.int <10 (0xa)> + #211.1.1.num.int <20 (0x14)> + #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + 61 62 63 abc + #214.1.1.num.int <30 (0x1e)> + #217.1.1.num.int <10 (0xa)> + #218.1.1.num.int <20 (0x14)> diff --git a/tests/0024_exec/screen.log.ref b/tests/0024_exec/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0024_exec/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0024_exec/trace.log.ref b/tests/0024_exec/trace.log.ref new file mode 100644 index 0000000..fdd829d --- /dev/null +++ b/tests/0024_exec/trace.log.ref @@ -0,0 +1,525 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 6, 15[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xf, size 5> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 5, "foo_2"> +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 5, "foo_2"> +IP: #186:0x24, type 8, 37[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.ref.ro +GC: --#192.1.2.mem.ref.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 9, 41[5] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x29, size 5, "foo_3"> +IP: #186:0x2e, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <50 (0x32)> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x29, size 5, "foo_3"> +IP: #186:0x30, type 8, 49[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.num.int +GC: --#194.1.2.num.int +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x3a, type 8, 59[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x3c, type 7, 61[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x3d, size 5, "foo_5"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x42, type 9, 67[5] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x43, size 5, "foo_1"> + [1] #196.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x3d, size 5, "foo_5"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x48, type 8, 73[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x4a, type 8, 75[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4e, type 9, 79[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x4f, size 5, "foo_1"> +IP: #186:0x54, type 8, 85[4] +GC: ++#190.1.1.mem.code.ro +GC: --#199.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #186:0x59, type 6, 90[7] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x5a, size 7> + [1] #203.1.1.num.int <20 (0x14)> + [2] #202.1.1.num.int <10 (0xa)> +IP: #186:0x61, type 8, 98[4] +GC: ++#204.1.1.mem.code.ro +GC: --#204.1.2.mem.code.ro +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #204:0x0, type 1, 300 (0x12c) +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <300 (0x12c)> + [1] #203.1.1.num.int <20 (0x14)> + [2] #202.1.1.num.int <10 (0xa)> +IP: #204:0x3, type 1, 400 (0x190) +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #203.1.1.num.int <20 (0x14)> + [3] #202.1.1.num.int <10 (0xa)> +IP: #204:0x6, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#205.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#204.1.1.mem.code.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #203.1.1.num.int <20 (0x14)> + [3] #202.1.1.num.int <10 (0xa)> +IP: #186:0x66, type 9, 103[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x67, size 5, "foo_2"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #186:0x6c, type 8, 109[4] +GC: ++#192.1.1.mem.ref.ro +GC: --#208.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #186:0x71, type 8, 114[5] +GC: ++#192.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.3.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #192.1.3.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [2] #207.1.1.num.int <400 (0x190)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #203.1.1.num.int <20 (0x14)> + [5] #202.1.1.num.int <10 (0xa)> +IP: #186:0x77, type 8, 120[4] +GC: ++#190.1.1.mem.code.ro +GC: --#192.1.3.mem.ref.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10 (0xa)> + [1] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [2] #207.1.1.num.int <400 (0x190)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #203.1.1.num.int <20 (0x14)> + [5] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <10 (0xa)> + [2] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [3] #207.1.1.num.int <400 (0x190)> + [4] #206.1.1.num.int <300 (0x12c)> + [5] #203.1.1.num.int <20 (0x14)> + [6] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <10 (0xa)> + [2] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [3] #207.1.1.num.int <400 (0x190)> + [4] #206.1.1.num.int <300 (0x12c)> + [5] #203.1.1.num.int <20 (0x14)> + [6] #202.1.1.num.int <10 (0xa)> +IP: #186:0x7c, type 9, 125[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x7d, size 5, "foo_3"> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <10 (0xa)> + [3] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [4] #207.1.1.num.int <400 (0x190)> + [5] #206.1.1.num.int <300 (0x12c)> + [6] #203.1.1.num.int <20 (0x14)> + [7] #202.1.1.num.int <10 (0xa)> +IP: #186:0x82, type 8, 131[4] +GC: ++#194.1.1.num.int +GC: --#212.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.num.int <50 (0x32)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <10 (0xa)> + [3] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [4] #207.1.1.num.int <400 (0x190)> + [5] #206.1.1.num.int <300 (0x12c)> + [6] #203.1.1.num.int <20 (0x14)> + [7] #202.1.1.num.int <10 (0xa)> +IP: #186:0x87, type 7, 136[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [1] #194.1.2.num.int <50 (0x32)> + [2] #211.1.1.num.int <20 (0x14)> + [3] #210.1.1.num.int <10 (0xa)> + [4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [5] #207.1.1.num.int <400 (0x190)> + [6] #206.1.1.num.int <300 (0x12c)> + [7] #203.1.1.num.int <20 (0x14)> + [8] #202.1.1.num.int <10 (0xa)> +IP: #186:0x8b, type 8, 140[4] +GC: ++#213.1.1.mem.str.ro +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [1] #194.1.2.num.int <50 (0x32)> + [2] #211.1.1.num.int <20 (0x14)> + [3] #210.1.1.num.int <10 (0xa)> + [4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [5] #207.1.1.num.int <400 (0x190)> + [6] #206.1.1.num.int <300 (0x12c)> + [7] #203.1.1.num.int <20 (0x14)> + [8] #202.1.1.num.int <10 (0xa)> +IP: #186:0x90, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <30 (0x1e)> + [1] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [2] #194.1.2.num.int <50 (0x32)> + [3] #211.1.1.num.int <20 (0x14)> + [4] #210.1.1.num.int <10 (0xa)> + [5] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [6] #207.1.1.num.int <400 (0x190)> + [7] #206.1.1.num.int <300 (0x12c)> + [8] #203.1.1.num.int <20 (0x14)> + [9] #202.1.1.num.int <10 (0xa)> +IP: #186:0x92, type 8, 147[4] +GC: ++#214.1.1.num.int +GC: --#214.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <30 (0x1e)> + [1] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [2] #194.1.2.num.int <50 (0x32)> + [3] #211.1.1.num.int <20 (0x14)> + [4] #210.1.1.num.int <10 (0xa)> + [5] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [6] #207.1.1.num.int <400 (0x190)> + [7] #206.1.1.num.int <300 (0x12c)> + [8] #203.1.1.num.int <20 (0x14)> + [9] #202.1.1.num.int <10 (0xa)> +IP: #186:0x97, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #186:0x98, type 8, 153[4] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #186:0x9d, type 8, 158[5] +GC: ++#198.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #186:0xa3, type 7, 164[5] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa4, size 5, "foo_5"> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.11.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> +IP: #186:0xa9, type 8, 170[3] +GC: ++#197.1.1.mem.ref.ro +GC: --#215.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#198.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #186:0xad, type 8, 174[4] +GC: ++#190.1.1.mem.code.ro +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <10 (0xa)> + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <20 (0x14)> + [1] #217.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#216.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <20 (0x14)> + [1] #217.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> diff --git a/tests/0025_add/basic.log.ref b/tests/0025_add/basic.log.ref new file mode 100644 index 0000000..13e36ee --- /dev/null +++ b/tests/0025_add/basic.log.ref @@ -0,0 +1,785 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #0.0.nil + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [2] #0.0.nil + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <10 (0xa)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <10 (0xa)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <10 (0xa)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <10 (0xa)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.array +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <10 (0xa)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <30 (0x1e)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <10 (0xa)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <10 (0xa)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <10 (0xa)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.2.num.int <40 (0x28)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #0.0.nil + [8] #xxxx.1.2.num.int <10 (0xa)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.2.num.int <50 (0x32)> + [7] #xxxx.1.2.num.int <40 (0x28)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #0.0.nil + [10] #xxxx.1.2.num.int <10 (0xa)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <100 (0x64)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <50 (0x32)> + [9] #xxxx.1.2.num.int <40 (0x28)> + [10] #xxxx.1.2.num.int <30 (0x1e)> + [11] #0.0.nil + [12] #xxxx.1.2.num.int <10 (0xa)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <300 (0x12c)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <200 (0xc8)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <100 (0x64)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <50 (0x32)> + [11] #xxxx.1.2.num.int <40 (0x28)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #xxxx.1.2.num.int <10 (0xa)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <300 (0x12c)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <200 (0xc8)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <100 (0x64)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <50 (0x32)> + [11] #xxxx.1.2.num.int <40 (0x28)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #xxxx.1.2.num.int <10 (0xa)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [1] #0.0.nil + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <300 (0x12c)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <200 (0xc8)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <100 (0x64)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <50 (0x32)> + [12] #xxxx.1.2.num.int <40 (0x28)> + [13] #xxxx.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #xxxx.1.2.num.int <10 (0xa)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "12345"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #0.0.nil + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <300 (0x12c)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <200 (0xc8)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <100 (0x64)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <50 (0x32)> + [12] #xxxx.1.2.num.int <40 (0x28)> + [13] #xxxx.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #xxxx.1.2.num.int <10 (0xa)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo"> + [1] #xxxx.1.1.mem.str + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo"> + [2] #xxxx.1.1.mem.str + [3] #0.0.nil + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <300 (0x12c)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <200 (0xc8)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <100 (0x64)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <50 (0x32)> + [14] #xxxx.1.2.num.int <40 (0x28)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #0.0.nil + [17] #xxxx.1.2.num.int <10 (0xa)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref + [1] #xxxx.1.1.mem.str + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0025_add/code.log.ref b/tests/0025_add/code.log.ref new file mode 100644 index 0000000..6f079d8 --- /dev/null +++ b/tests/0025_add/code.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e word 38 61 64 64 add + 3 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 word 38 61 64 64 add + 4 7 0x00018 bool 12 true + 8 0x00019 int 81 09 9 + 9 0x0001b word 38 61 64 64 add + 6 10 0x0001f ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x00025 word 18 5b [ + 12 0x00027 int 81 0a 10 + 13 0x00029 nil 00 nil + 14 0x0002a int 81 1e 30 + 15 0x0002c word 18 5d ] + 16 0x0002e word 18 5b [ + 17 0x00030 int 81 28 40 + 18 0x00032 int 81 32 50 + 19 0x00034 word 18 5d ] + 20 0x00036 word 38 61 64 64 add + 21 0x0003a word 38 64 65 66 def + 8 22 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x00044 word 18 28 ( + 24 0x00046 str 27 61 61 "aa" + 25 0x00049 int 81 64 100 + 26 0x0004b str 27 65 65 "ee" + 27 0x0004e nil 00 nil + 28 0x0004f str 27 64 64 "dd" + 29 0x00052 int 91 90 01 400 + 30 0x00055 word 18 29 ) + 31 0x00057 word 18 28 ( + 32 0x00059 str 27 63 63 "cc" + 33 0x0005c int 91 2c 01 300 + 34 0x0005f str 27 62 62 "bb" + 35 0x00062 int 91 c8 00 200 + 36 0x00065 word 18 29 ) + 37 0x00067 word 38 61 64 64 add + 38 0x0006b word 38 64 65 66 def + 10 39 0x0006f word 58 66 6f 6f 5f 31 foo_1 + 40 0x00075 code 16 { + 41 0x00076 prim 13 } + 42 0x00077 word 68 66 6f 72 61 6c 6c forall + 11 43 0x0007e word 58 66 6f 6f 5f 32 foo_2 + 44 0x00084 code 16 { + 45 0x00085 prim 13 } + 46 0x00086 word 68 66 6f 72 61 6c 6c forall + 13 47 0x0008d str 37 61 62 63 "abc" + 48 0x00091 str 57 31 32 33 34 35 "12345" + 49 0x00097 word 38 61 64 64 add + 14 50 0x0009b ref 39 66 6f 6f /foo + 51 0x0009f str 37 31 32 33 "123" + 52 0x000a3 word 38 61 64 64 add diff --git a/tests/0025_add/code1.log.ref b/tests/0025_add/code1.log.ref new file mode 100644 index 0000000..c375deb --- /dev/null +++ b/tests/0025_add/code1.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e word 38 61 64 64 add + 3 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 xref 64 add + 4 7 0x00015 bool 12 true + 8 0x00016 int 81 09 9 + 9 0x00018 xref 84 0a add + 6 10 0x0001a ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x00020 word 18 5b [ + 12 0x00022 int 81 0a 10 + 13 0x00024 nil 00 nil + 14 0x00025 int 81 1e 30 + 15 0x00027 word 18 5d ] + 16 0x00029 word 18 5b [ + 17 0x0002b int 81 28 40 + 18 0x0002d int 81 32 50 + 19 0x0002f word 18 5d ] + 20 0x00031 xref 84 23 add + 21 0x00033 word 38 64 65 66 def + 8 22 0x00037 ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x0003d word 18 28 ( + 24 0x0003f str 27 61 61 "aa" + 25 0x00042 int 81 64 100 + 26 0x00044 str 27 65 65 "ee" + 27 0x00047 nil 00 nil + 28 0x00048 str 27 64 64 "dd" + 29 0x0004b int 91 90 01 400 + 30 0x0004e word 18 29 ) + 31 0x00050 word 18 28 ( + 32 0x00052 str 27 63 63 "cc" + 33 0x00055 int 91 2c 01 300 + 34 0x00058 str 27 62 62 "bb" + 35 0x0005b int 91 c8 00 200 + 36 0x0005e word 18 29 ) + 37 0x00060 xref 84 52 add + 38 0x00062 xref 84 2f def + 10 39 0x00064 word 58 66 6f 6f 5f 31 foo_1 + 40 0x0006a code 16 { + 41 0x0006b prim 13 } + 42 0x0006c word 68 66 6f 72 61 6c 6c forall + 11 43 0x00073 word 58 66 6f 6f 5f 32 foo_2 + 44 0x00079 code 16 { + 45 0x0007a prim 13 } + 46 0x0007b xref 84 0f forall + 13 47 0x0007d str 37 61 62 63 "abc" + 48 0x00081 str 57 31 32 33 34 35 "12345" + 49 0x00087 xref 84 79 add + 14 50 0x00089 ref 39 66 6f 6f /foo + 51 0x0008d str 37 31 32 33 "123" + 52 0x00091 xref 84 83 add diff --git a/tests/0025_add/code2.log.ref b/tests/0025_add/code2.log.ref new file mode 100644 index 0000000..9cff7d7 --- /dev/null +++ b/tests/0025_add/code2.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e prim 83 1e add + 3 4 0x00010 bool 12 true + 5 0x00011 bool 02 false + 6 0x00012 prim 83 1e add + 4 7 0x00014 bool 12 true + 8 0x00015 int 81 09 9 + 9 0x00017 prim 83 1e add + 6 10 0x00019 ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x0001f prim 23 [ + 12 0x00020 int 81 0a 10 + 13 0x00022 nil 00 nil + 14 0x00023 int 81 1e 30 + 15 0x00025 prim 33 ] + 16 0x00026 prim 23 [ + 17 0x00027 int 81 28 40 + 18 0x00029 int 81 32 50 + 19 0x0002b prim 33 ] + 20 0x0002c prim 83 1e add + 21 0x0002e prim 63 def + 8 22 0x0002f ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x00035 prim 43 ( + 24 0x00036 str 27 61 61 "aa" + 25 0x00039 int 81 64 100 + 26 0x0003b str 27 65 65 "ee" + 27 0x0003e nil 00 nil + 28 0x0003f str 27 64 64 "dd" + 29 0x00042 int 91 90 01 400 + 30 0x00045 prim 53 ) + 31 0x00046 prim 43 ( + 32 0x00047 str 27 63 63 "cc" + 33 0x0004a int 91 2c 01 300 + 34 0x0004d str 27 62 62 "bb" + 35 0x00050 int 91 c8 00 200 + 36 0x00053 prim 53 ) + 37 0x00054 prim 83 1e add + 38 0x00056 prim 63 def + 10 39 0x00057 word 58 66 6f 6f 5f 31 foo_1 + 40 0x0005d code 16 { + 41 0x0005e prim 13 } + 42 0x0005f prim 83 0e forall + 11 43 0x00061 word 58 66 6f 6f 5f 32 foo_2 + 44 0x00067 code 16 { + 45 0x00068 prim 13 } + 46 0x00069 prim 83 0e forall + 13 47 0x0006b str 37 61 62 63 "abc" + 48 0x0006f str 57 31 32 33 34 35 "12345" + 49 0x00075 prim 83 1e add + 14 50 0x00077 ref 39 66 6f 6f /foo + 51 0x0007b str 37 31 32 33 "123" + 52 0x0007f prim 83 1e add diff --git a/tests/0025_add/main.gs b/tests/0025_add/main.gs new file mode 100644 index 0000000..635a636 --- /dev/null +++ b/tests/0025_add/main.gs @@ -0,0 +1,14 @@ +1000 2000 add + +true false add +true 9 add + +/foo_1 [ 10 nil 30 ] [ 40 50 ] add def + +/foo_2 ( "aa" 100 "ee" nil "dd" 400 ) ( "cc" 300 "bb" 200 ) add def + +foo_1 { } forall +foo_2 { } forall + +"abc" "12345" add +/foo "123" add diff --git a/tests/0025_add/mem.log.ref b/tests/0025_add/mem.log.ref new file mode 100644 index 0000000..979cc07 --- /dev/null +++ b/tests/0025_add/mem.log.ref @@ -0,0 +1,832 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 168] + 8: 226.01, 0x001d6b1c[ 8] + 9: 229.01, 0x001d6b2c[ 8] + 10: 0.00, 0x001d6b3c[ 40] + 11: 188.01, 0x001d6b6c[ 56] + 12: 192.01, 0x001d6bac[ 72] + 13: 0.00, 0x001d6bfc[ 44] + 14: 206.01, 0x001d6c30[ 92] + 15: 0.00, 0x001d6c94[ 28] + 16: 219.01, 0x001d6cb8[ 180] + 17: 0.00, 0x001d6d74[ 56] + 18: 187.01, 0x001d6db4[ 144] + 19: 0.00, 0x001d6e4c[14848436] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x20, size 5, "foo_1"> => #206.1.1.array + #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> => #219.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 91 e8 03 91 d0 07 38 61 uQ..Bz.`......8a + 64 64 12 02 38 61 64 64 12 81 09 38 61 64 64 59 dd..8add...8addY + 66 6f 6f 5f 31 18 5b 81 0a 00 81 1e 18 5d 18 5b foo_1.[......].[ + 81 28 81 32 18 5d 38 61 64 64 38 64 65 66 59 66 .(.2.]8add8defYf + 6f 6f 5f 32 18 28 27 61 61 81 64 27 65 65 00 27 oo_2.('aa.d'ee.' + 64 64 91 90 01 18 29 18 28 27 63 63 91 2c 01 27 dd....).('cc.,.' + 62 62 91 c8 00 18 29 38 61 64 64 38 64 65 66 58 bb....)8add8defX + 66 6f 6f 5f 31 16 13 68 66 6f 72 61 6c 6c 58 66 foo_1..hforallXf + 6f 6f 5f 32 16 13 68 66 6f 72 61 6c 6c 37 61 62 oo_2..hforall7ab + 63 57 31 32 33 34 35 38 61 64 64 39 66 6f 6f 37 cW123458add9foo7 + 31 32 33 38 61 64 64 1238add + #187.1.1.array + [ 0] #191.1.1.num.int <3000 (0xbb8)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #200.1.2.num.int <10 (0xa)> + [ 4] #0.0.nil + [ 5] #201.1.2.num.int <30 (0x1e)> + [ 6] #203.1.2.num.int <40 (0x28)> + [ 7] #204.1.2.num.int <50 (0x32)> + [ 8] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [ 9] #209.1.2.num.int <100 (0x64)> + [10] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [11] #217.1.2.num.int <200 (0xc8)> + [12] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [13] #215.1.2.num.int <300 (0x12c)> + [14] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [15] #212.1.2.num.int <400 (0x190)> + [16] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [17] #0.0.nil + [18] #226.1.1.mem.str + [19] #229.1.1.mem.ref + #188.1.1.ctx.func + type 17, ip 0xa7 (0xa7) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <3000 (0xbb8)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x20, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #200.1.2.num.int <10 (0xa)> + #201.1.2.num.int <30 (0x1e)> + #203.1.2.num.int <40 (0x28)> + #204.1.2.num.int <50 (0x32)> + #206.1.1.array + [ 0] #200.1.2.num.int <10 (0xa)> + [ 1] #0.0.nil + [ 2] #201.1.2.num.int <30 (0x1e)> + [ 3] #203.1.2.num.int <40 (0x28)> + [ 4] #204.1.2.num.int <50 (0x32)> + #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + 61 61 aa + #209.1.2.num.int <100 (0x64)> + #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + 65 65 ee + #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + 64 64 dd + #212.1.2.num.int <400 (0x190)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + 63 63 cc + #215.1.2.num.int <300 (0x12c)> + #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + 62 62 bb + #217.1.2.num.int <200 (0xc8)> + #219.1.1.hash + #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> => #209.1.2.num.int <100 (0x64)> + #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> => #217.1.2.num.int <200 (0xc8)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> => #215.1.2.num.int <300 (0x12c)> + #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> => #212.1.2.num.int <400 (0x190)> + #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> => #0.0.nil + #226.1.1.mem.str + 61 62 63 31 32 33 34 35 abc12345 + #229.1.1.mem.ref + 66 6f 6f 31 32 33 foo123 diff --git a/tests/0025_add/screen.log.ref b/tests/0025_add/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0025_add/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0025_add/trace.log.ref b/tests/0025_add/trace.log.ref new file mode 100644 index 0000000..36836c6 --- /dev/null +++ b/tests/0025_add/trace.log.ref @@ -0,0 +1,846 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xb, type 1, 2000 (0x7d0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2000 (0x7d0)> + [1] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xe, type 8, 15[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x12, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x13, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x19, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <9 (0x9)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1f, type 9, 32[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x25, type 8, 38[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x27, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x29, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #200.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2a, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #200.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2c, type 8, 45[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2e, type 8, 47[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #202.1.1.array + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x30, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #202.1.1.array + [3] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x32, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <50 (0x32)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #202.1.1.array + [4] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x34, type 8, 53[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.array + [1] #202.1.1.array + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x36, type 8, 55[3] +GC: ++#200.1.1.num.int +GC: ++#201.1.1.num.int +GC: ++#203.1.1.num.int +GC: ++#204.1.1.num.int +GC: --#205.1.1.array +GC: --#203.1.2.num.int +GC: --#204.1.2.num.int +GC: --#202.1.1.array +GC: --#200.1.2.num.int +GC: --#201.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3a, type 8, 59[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#206.1.1.array +GC: --#206.1.2.array +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3e, type 9, 63[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3f, size 5, "foo_2"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x44, type 8, 69[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #207.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x46, type 7, 71[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x47, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #207.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x49, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <100 (0x64)> + [1] #208.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x47, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #207.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3f, size 5, "foo_2"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4b, type 7, 76[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x4c, size 2, "ee"> + [1] #209.1.1.num.int <100 (0x64)> + [2] #208.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x47, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #207.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x3f, size 5, "foo_2"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4e, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #209.1.1.num.int <100 (0x64)> + [3] #208.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x47, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #207.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x3f, size 5, "foo_2"> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4f, type 7, 80[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x50, size 2, "dd"> + [1] #0.0.nil + [2] #210.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #209.1.1.num.int <100 (0x64)> + [4] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x47, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x52, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <400 (0x190)> + [1] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x50, size 2, "dd"> + [2] #0.0.nil + [3] #210.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #209.1.1.num.int <100 (0x64)> + [5] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x47, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x55, type 8, 86[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.hash + [1] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x57, type 8, 88[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #213.1.1.hash + [2] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x59, type 7, 90[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x5a, size 2, "cc"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #213.1.1.hash + [3] #207.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x3f, size 5, "foo_2"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x5c, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <300 (0x12c)> + [1] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #213.1.1.hash + [4] #207.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x3f, size 5, "foo_2"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x5f, type 7, 96[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [1] #215.1.1.num.int <300 (0x12c)> + [2] #214.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #213.1.1.hash + [5] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x62, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <200 (0xc8)> + [1] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [2] #215.1.1.num.int <300 (0x12c)> + [3] #214.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #213.1.1.hash + [6] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x65, type 8, 102[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.hash + [1] #213.1.1.hash + [2] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x67, type 8, 104[3] +GC: ++#208.1.1.mem.str.ro +GC: ++#209.1.1.num.int +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +GC: ++#210.1.1.mem.str.ro +GC: ++#216.1.1.mem.str.ro +GC: ++#217.1.1.num.int +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#218.1.1.hash +GC: --#216.1.2.mem.str.ro +GC: --#217.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#215.1.2.num.int +GC: --#213.1.1.hash +GC: --#208.1.2.mem.str.ro +GC: --#209.1.2.num.int +GC: --#211.1.2.mem.str.ro +GC: --#212.1.2.num.int +GC: --#210.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.hash + [1] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x6b, type 8, 108[3] +GC: ++#207.1.1.mem.ref.ro +GC: ++#219.1.1.hash +GC: --#219.1.2.hash +GC: --#207.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x6f, type 8, 112[5] +GC: ++#206.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.array + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x75, type 6, 118[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x76, size 1> + [1] #206.1.2.array + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x77, type 8, 120[6] +GC: ++#200.1.1.num.int +GC: ++#220.1.1.mem.code.ro +GC: ++#206.1.2.array +GC: --#220.1.2.mem.code.ro +GC: --#206.1.3.array +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.num.int <10 (0xa)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #200.1.2.num.int <10 (0xa)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#201.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #200.1.2.num.int <10 (0xa)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <40 (0x28)> + [1] #201.1.2.num.int <30 (0x1e)> + [2] #0.0.nil + [3] #200.1.2.num.int <10 (0xa)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#204.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <50 (0x32)> + [1] #203.1.2.num.int <40 (0x28)> + [2] #201.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #200.1.2.num.int <10 (0xa)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#221.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#220.1.1.mem.code.ro +GC: --#206.1.2.array +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <50 (0x32)> + [1] #203.1.2.num.int <40 (0x28)> + [2] #201.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #200.1.2.num.int <10 (0xa)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x7e, type 8, 127[5] +GC: ++#219.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.hash + [1] #204.1.2.num.int <50 (0x32)> + [2] #203.1.2.num.int <40 (0x28)> + [3] #201.1.2.num.int <30 (0x1e)> + [4] #0.0.nil + [5] #200.1.2.num.int <10 (0xa)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x84, type 6, 133[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x85, size 1> + [1] #219.1.2.hash + [2] #204.1.2.num.int <50 (0x32)> + [3] #203.1.2.num.int <40 (0x28)> + [4] #201.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #200.1.2.num.int <10 (0xa)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x86, type 8, 135[6] +GC: ++#208.1.1.mem.str.ro +GC: ++#209.1.1.num.int +GC: ++#222.1.1.mem.code.ro +GC: ++#219.1.2.hash +GC: --#222.1.2.mem.code.ro +GC: --#219.1.3.hash +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.num.int <100 (0x64)> + [1] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [2] #204.1.2.num.int <50 (0x32)> + [3] #203.1.2.num.int <40 (0x28)> + [4] #201.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #200.1.2.num.int <10 (0xa)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#216.1.1.mem.str.ro +GC: ++#217.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.2.num.int <200 (0xc8)> + [1] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [2] #209.1.2.num.int <100 (0x64)> + [3] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [4] #204.1.2.num.int <50 (0x32)> + [5] #203.1.2.num.int <40 (0x28)> + [6] #201.1.2.num.int <30 (0x1e)> + [7] #0.0.nil + [8] #200.1.2.num.int <10 (0xa)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <300 (0x12c)> + [1] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #217.1.2.num.int <200 (0xc8)> + [3] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [4] #209.1.2.num.int <100 (0x64)> + [5] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [6] #204.1.2.num.int <50 (0x32)> + [7] #203.1.2.num.int <40 (0x28)> + [8] #201.1.2.num.int <30 (0x1e)> + [9] #0.0.nil + [10] #200.1.2.num.int <10 (0xa)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.2.num.int <400 (0x190)> + [1] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [2] #215.1.2.num.int <300 (0x12c)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #217.1.2.num.int <200 (0xc8)> + [5] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [6] #209.1.2.num.int <100 (0x64)> + [7] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [8] #204.1.2.num.int <50 (0x32)> + [9] #203.1.2.num.int <40 (0x28)> + [10] #201.1.2.num.int <30 (0x1e)> + [11] #0.0.nil + [12] #200.1.2.num.int <10 (0xa)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#210.1.1.mem.str.ro +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #212.1.2.num.int <400 (0x190)> + [3] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [4] #215.1.2.num.int <300 (0x12c)> + [5] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [6] #217.1.2.num.int <200 (0xc8)> + [7] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [8] #209.1.2.num.int <100 (0x64)> + [9] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [10] #204.1.2.num.int <50 (0x32)> + [11] #203.1.2.num.int <40 (0x28)> + [12] #201.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #200.1.2.num.int <10 (0xa)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#223.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#222.1.1.mem.code.ro +GC: --#219.1.2.hash +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #212.1.2.num.int <400 (0x190)> + [3] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [4] #215.1.2.num.int <300 (0x12c)> + [5] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [6] #217.1.2.num.int <200 (0xc8)> + [7] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [8] #209.1.2.num.int <100 (0x64)> + [9] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [10] #204.1.2.num.int <50 (0x32)> + [11] #203.1.2.num.int <40 (0x28)> + [12] #201.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #200.1.2.num.int <10 (0xa)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x8d, type 7, 142[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x8e, size 3, "abc"> + [1] #0.0.nil + [2] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #212.1.2.num.int <400 (0x190)> + [4] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [5] #215.1.2.num.int <300 (0x12c)> + [6] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [7] #217.1.2.num.int <200 (0xc8)> + [8] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [9] #209.1.2.num.int <100 (0x64)> + [10] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [11] #204.1.2.num.int <50 (0x32)> + [12] #203.1.2.num.int <40 (0x28)> + [13] #201.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #200.1.2.num.int <10 (0xa)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x91, type 7, 146[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x92, size 5, "12345"> + [1] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x8e, size 3, "abc"> + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x97, type 8, 152[3] +GC: --#225.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#224.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.str + [1] #0.0.nil + [2] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #212.1.2.num.int <400 (0x190)> + [4] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [5] #215.1.2.num.int <300 (0x12c)> + [6] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [7] #217.1.2.num.int <200 (0xc8)> + [8] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [9] #209.1.2.num.int <100 (0x64)> + [10] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [11] #204.1.2.num.int <50 (0x32)> + [12] #203.1.2.num.int <40 (0x28)> + [13] #201.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #200.1.2.num.int <10 (0xa)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x9b, type 9, 156[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9c, size 3, "foo"> + [1] #226.1.1.mem.str + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x9f, type 7, 160[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xa0, size 3, "123"> + [1] #227.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9c, size 3, "foo"> + [2] #226.1.1.mem.str + [3] #0.0.nil + [4] #210.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "ee"> + [5] #212.1.2.num.int <400 (0x190)> + [6] #211.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x50, size 2, "dd"> + [7] #215.1.2.num.int <300 (0x12c)> + [8] #214.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [9] #217.1.2.num.int <200 (0xc8)> + [10] #216.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x60, size 2, "bb"> + [11] #209.1.2.num.int <100 (0x64)> + [12] #208.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x47, size 2, "aa"> + [13] #204.1.2.num.int <50 (0x32)> + [14] #203.1.2.num.int <40 (0x28)> + [15] #201.1.2.num.int <30 (0x1e)> + [16] #0.0.nil + [17] #200.1.2.num.int <10 (0xa)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0xa3, type 8, 164[3] +GC: --#228.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#227.1.1.mem.ref.ro +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.ref + [1] #226.1.1.mem.str + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0026_sub/basic.log.ref b/tests/0026_sub/basic.log.ref new file mode 100644 index 0000000..d959488 --- /dev/null +++ b/tests/0026_sub/basic.log.ref @@ -0,0 +1,58 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> diff --git a/tests/0026_sub/code.log.ref b/tests/0026_sub/code.log.ref new file mode 100644 index 0000000..8f4eec0 --- /dev/null +++ b/tests/0026_sub/code.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e word 38 73 75 62 sub + 2 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 word 38 73 75 62 sub + 3 7 0x00018 bool 12 true + 8 0x00019 int 81 09 9 + 9 0x0001b word 38 73 75 62 sub diff --git a/tests/0026_sub/code1.log.ref b/tests/0026_sub/code1.log.ref new file mode 100644 index 0000000..14e9708 --- /dev/null +++ b/tests/0026_sub/code1.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e word 38 73 75 62 sub + 2 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 xref 64 sub + 3 7 0x00015 bool 12 true + 8 0x00016 int 81 09 9 + 9 0x00018 xref 84 0a sub diff --git a/tests/0026_sub/code2.log.ref b/tests/0026_sub/code2.log.ref new file mode 100644 index 0000000..0adbd3f --- /dev/null +++ b/tests/0026_sub/code2.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e prim 83 1f sub + 2 4 0x00010 bool 12 true + 5 0x00011 bool 02 false + 6 0x00012 prim 83 1f sub + 3 7 0x00014 bool 12 true + 8 0x00015 int 81 09 9 + 9 0x00017 prim 83 1f sub diff --git a/tests/0026_sub/main.gs b/tests/0026_sub/main.gs new file mode 100644 index 0000000..a5115e9 --- /dev/null +++ b/tests/0026_sub/main.gs @@ -0,0 +1,3 @@ +1000 3000 sub +true false sub +true 9 sub diff --git a/tests/0026_sub/mem.log.ref b/tests/0026_sub/mem.log.ref new file mode 100644 index 0000000..db3b9f7 --- /dev/null +++ b/tests/0026_sub/mem.log.ref @@ -0,0 +1,758 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 192.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 e8 03 91 b8 0b 38 73 uQ..Bz.`......8s + 75 62 12 02 38 73 75 62 12 81 09 38 73 75 62 ub..8sub...8sub + #187.1.1.array + [ 0] #191.1.1.num.int <-2000 (0xfffffffffffff830)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <-2000 (0xfffffffffffff830)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> diff --git a/tests/0026_sub/screen.log.ref b/tests/0026_sub/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0026_sub/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0026_sub/trace.log.ref b/tests/0026_sub/trace.log.ref new file mode 100644 index 0000000..acbfa07 --- /dev/null +++ b/tests/0026_sub/trace.log.ref @@ -0,0 +1,68 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xb, type 1, 3000 (0xbb8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <3000 (0xbb8)> + [1] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xe, type 8, 15[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x12, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x13, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x19, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <9 (0x9)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> diff --git a/tests/0027_mul/basic.log.ref b/tests/0027_mul/basic.log.ref new file mode 100644 index 0000000..cdc450f --- /dev/null +++ b/tests/0027_mul/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0027_mul/code.log.ref b/tests/0027_mul/code.log.ref new file mode 100644 index 0000000..40f7970 --- /dev/null +++ b/tests/0027_mul/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c word 38 6d 75 6c mul + 2 4 0x00010 int 81 64 100 + 5 0x00012 int 81 ec -20 + 6 0x00014 word 38 6d 75 6c mul + 3 7 0x00018 bool 12 true + 8 0x00019 bool 12 true + 9 0x0001a word 38 6d 75 6c mul + 4 10 0x0001e bool 12 true + 11 0x0001f bool 02 false + 12 0x00020 word 38 6d 75 6c mul + 5 13 0x00024 bool 12 true + 14 0x00025 int 81 09 9 + 15 0x00027 word 38 6d 75 6c mul + 6 16 0x0002b int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x00034 int 81 10 0x10 + 18 0x00036 word 38 6d 75 6c mul + 7 19 0x0003a int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00043 int 81 ff -1 + 21 0x00045 word 38 6d 75 6c mul diff --git a/tests/0027_mul/code1.log.ref b/tests/0027_mul/code1.log.ref new file mode 100644 index 0000000..5208294 --- /dev/null +++ b/tests/0027_mul/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c word 38 6d 75 6c mul + 2 4 0x00010 int 81 64 100 + 5 0x00012 int 81 ec -20 + 6 0x00014 xref 84 08 mul + 3 7 0x00016 bool 12 true + 8 0x00017 bool 12 true + 9 0x00018 xref 84 0c mul + 4 10 0x0001a bool 12 true + 11 0x0001b bool 02 false + 12 0x0001c xref 84 10 mul + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 09 9 + 15 0x00021 xref 84 15 mul + 6 16 0x00023 int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x0002c int 81 10 0x10 + 18 0x0002e xref 84 22 mul + 7 19 0x00030 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00039 int 81 ff -1 + 21 0x0003b xref 84 2f mul diff --git a/tests/0027_mul/code2.log.ref b/tests/0027_mul/code2.log.ref new file mode 100644 index 0000000..da27c35 --- /dev/null +++ b/tests/0027_mul/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c prim 83 20 mul + 2 4 0x0000e int 81 64 100 + 5 0x00010 int 81 ec -20 + 6 0x00012 prim 83 20 mul + 3 7 0x00014 bool 12 true + 8 0x00015 bool 12 true + 9 0x00016 prim 83 20 mul + 4 10 0x00018 bool 12 true + 11 0x00019 bool 02 false + 12 0x0001a prim 83 20 mul + 5 13 0x0001c bool 12 true + 14 0x0001d int 81 09 9 + 15 0x0001f prim 83 20 mul + 6 16 0x00021 int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x0002a int 81 10 0x10 + 18 0x0002c prim 83 20 mul + 7 19 0x0002e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00037 int 81 ff -1 + 21 0x00039 prim 83 20 mul diff --git a/tests/0027_mul/main.gs b/tests/0027_mul/main.gs new file mode 100644 index 0000000..f122af5 --- /dev/null +++ b/tests/0027_mul/main.gs @@ -0,0 +1,7 @@ +100 30 mul +100 -20 mul +true true mul +true false mul +true 9 mul +0x7ffffffffffff123 0x10 mul +-0x8000000000000000 -1 mul diff --git a/tests/0027_mul/mem.log.ref b/tests/0027_mul/mem.log.ref new file mode 100644 index 0000000..f3ad33c --- /dev/null +++ b/tests/0027_mul/mem.log.ref @@ -0,0 +1,769 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 192.01, 0x001d6b50[ 72] + 11: 0.00, 0x001d6ba0[14849120] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 81 1e 38 6d 75 6c uQ..Bz.`.d..8mul + 81 64 81 ec 38 6d 75 6c 12 12 38 6d 75 6c 12 02 .d..8mul..8mul.. + 38 6d 75 6c 12 81 09 38 6d 75 6c f1 23 f1 ff ff 8mul...8mul.#... + ff ff ff 7f 81 10 38 6d 75 6c f1 00 00 00 00 00 ......8mul...... + 00 00 80 81 ff 38 6d 75 6c .....8mul + #187.1.1.array + [ 0] #191.1.1.num.int <3000 (0xbb8)> + [ 1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [ 6] #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #188.1.1.ctx.func + type 17, ip 0x49 (0x49) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <3000 (0xbb8)> + #192.1.1.array + #195.1.1.num.int <-2000 (0xfffffffffffff830)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.int <-60880 (0xffffffffffff1230)> + #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> diff --git a/tests/0027_mul/screen.log.ref b/tests/0027_mul/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0027_mul/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0027_mul/trace.log.ref b/tests/0027_mul/trace.log.ref new file mode 100644 index 0000000..64926f3 --- /dev/null +++ b/tests/0027_mul/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <30 (0x1e)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xc, type 8, 13[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x10, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x12, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #193.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x19, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1a, type 8, 27[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1e, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1f, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x20, type 8, 33[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x24, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x25, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <9 (0x9)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x27, type 8, 40[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2b, type 1, 9223372036854772003 (0x7ffffffffffff123) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x34, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <16 (0x10)> + [1] #205.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x36, type 8, 55[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3a, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x43, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #208.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x45, type 8, 70[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0028_div/basic.log.ref b/tests/0028_div/basic.log.ref new file mode 100644 index 0000000..fdb8ee6 --- /dev/null +++ b/tests/0028_div/basic.log.ref @@ -0,0 +1,1369 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <56899329 (0x3643701)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <56899329 (0x3643701)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9 (0x9)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <56899329 (0x3643701)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <300 (0x12c)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <2 (0x2)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <56899329 (0x3643701)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <300 (0x12c)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <2 (0x2)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #xxxx.1.1.num.int <56899329 (0x3643701)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #xxxx.1.1.num.int <300 (0x12c)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <2 (0x2)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #xxxx.1.1.num.int <56899329 (0x3643701)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #xxxx.1.1.num.int <300 (0x12c)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <2 (0x2)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186 diff --git a/tests/0028_div/code.log.ref b/tests/0028_div/code.log.ref new file mode 100644 index 0000000..86d6c65 --- /dev/null +++ b/tests/0028_div/code.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 64 69 76 div + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 word 38 64 69 76 div + 3 7 0x00014 int 81 ff -1 + 8 0x00016 int 21 2 + 9 0x00017 word 38 64 69 76 div + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e word 38 64 69 76 div + 5 13 0x00022 int 81 ff -1 + 14 0x00024 int 81 fe -2 + 15 0x00026 word 38 64 69 76 div + 6 16 0x0002a int 81 14 20 + 17 0x0002c int 71 7 + 18 0x0002d word 38 64 69 76 div + 7 19 0x00031 int 81 ec -20 + 20 0x00033 int 71 7 + 21 0x00034 word 38 64 69 76 div + 8 22 0x00038 int 81 14 20 + 23 0x0003a int 81 f9 -7 + 24 0x0003c word 38 64 69 76 div + 9 25 0x00040 int 81 ec -20 + 26 0x00042 int 81 f9 -7 + 27 0x00044 word 38 64 69 76 div + 10 28 0x00048 int 91 67 75 30055 + 29 0x0004b int 81 64 100 + 30 0x0004d word 38 64 69 76 div + 11 31 0x00051 int 91 99 8a -30055 + 32 0x00054 int 81 64 100 + 33 0x00056 word 38 64 69 76 div + 12 34 0x0005a int 91 67 75 30055 + 35 0x0005d int 81 9c -100 + 36 0x0005f word 38 64 69 76 div + 13 37 0x00063 int 91 99 8a -30055 + 38 0x00066 int 81 9c -100 + 39 0x00068 word 38 64 69 76 div + 14 40 0x0006c int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x00075 int c1 b7 28 23 5e 05 23054198967 + 42 0x0007b word 38 64 69 76 div + 15 43 0x0007f int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x00088 int c1 b7 28 23 5e 05 23054198967 + 45 0x0008e word 38 64 69 76 div + 16 46 0x00092 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0009b int c1 49 d7 dc a1 fa -23054198967 + 48 0x000a1 word 38 64 69 76 div + 17 49 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x000ae int c1 49 d7 dc a1 fa -23054198967 + 51 0x000b4 word 38 64 69 76 div + 18 52 0x000b8 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000c1 int a1 56 34 12 1193046 + 54 0x000c5 word 38 64 69 76 div + 19 55 0x000c9 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000d2 int a1 56 34 12 1193046 + 57 0x000d6 word 38 64 69 76 div + 20 58 0x000da int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000e3 int a1 aa cb ed -1193046 + 60 0x000e7 word 38 64 69 76 div + 21 61 0x000eb int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000f4 int a1 aa cb ed -1193046 + 63 0x000f8 word 38 64 69 76 div + 22 64 0x000fc bool 12 true + 65 0x000fd bool 12 true + 66 0x000fe word 38 64 69 76 div + 23 67 0x00102 bool 02 false + 68 0x00103 bool 12 true + 69 0x00104 word 38 64 69 76 div + 24 70 0x00108 bool 12 true + 71 0x00109 int 81 09 9 + 72 0x0010b word 38 64 69 76 div + 25 73 0x0010f int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x00118 int 81 ff -1 + 75 0x0011a word 38 64 69 76 div + 26 76 0x0011e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x00127 int 81 ff -1 + 78 0x00129 word 38 64 69 76 div diff --git a/tests/0028_div/code1.log.ref b/tests/0028_div/code1.log.ref new file mode 100644 index 0000000..37a3d6c --- /dev/null +++ b/tests/0028_div/code1.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 64 69 76 div + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 xref 64 div + 3 7 0x00011 int 81 ff -1 + 8 0x00013 int 21 2 + 9 0x00014 xref 84 0a div + 4 10 0x00016 int 11 1 + 11 0x00017 int 81 fe -2 + 12 0x00019 xref 84 0f div + 5 13 0x0001b int 81 ff -1 + 14 0x0001d int 81 fe -2 + 15 0x0001f xref 84 15 div + 6 16 0x00021 int 81 14 20 + 17 0x00023 int 71 7 + 18 0x00024 xref 84 1a div + 7 19 0x00026 int 81 ec -20 + 20 0x00028 int 71 7 + 21 0x00029 xref 84 1f div + 8 22 0x0002b int 81 14 20 + 23 0x0002d int 81 f9 -7 + 24 0x0002f xref 84 25 div + 9 25 0x00031 int 81 ec -20 + 26 0x00033 int 81 f9 -7 + 27 0x00035 xref 84 2b div + 10 28 0x00037 int 91 67 75 30055 + 29 0x0003a int 81 64 100 + 30 0x0003c xref 84 32 div + 11 31 0x0003e int 91 99 8a -30055 + 32 0x00041 int 81 64 100 + 33 0x00043 xref 84 39 div + 12 34 0x00045 int 91 67 75 30055 + 35 0x00048 int 81 9c -100 + 36 0x0004a xref 84 40 div + 13 37 0x0004c int 91 99 8a -30055 + 38 0x0004f int 81 9c -100 + 39 0x00051 xref 84 47 div + 14 40 0x00053 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005c int c1 b7 28 23 5e 05 23054198967 + 42 0x00062 xref 84 58 div + 15 43 0x00064 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006d int c1 b7 28 23 5e 05 23054198967 + 45 0x00073 xref 84 69 div + 16 46 0x00075 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007e int c1 49 d7 dc a1 fa -23054198967 + 48 0x00084 xref 84 7a div + 17 49 0x00086 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008f int c1 49 d7 dc a1 fa -23054198967 + 51 0x00095 xref 84 8b div + 18 52 0x00097 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000a0 int a1 56 34 12 1193046 + 54 0x000a4 xref 84 9a div + 19 55 0x000a6 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000af int a1 56 34 12 1193046 + 57 0x000b3 xref 84 a9 div + 20 58 0x000b5 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000be int a1 aa cb ed -1193046 + 60 0x000c2 xref 84 b8 div + 21 61 0x000c4 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cd int a1 aa cb ed -1193046 + 63 0x000d1 xref 84 c7 div + 22 64 0x000d3 bool 12 true + 65 0x000d4 bool 12 true + 66 0x000d5 xref 84 cb div + 23 67 0x000d7 bool 02 false + 68 0x000d8 bool 12 true + 69 0x000d9 xref 84 cf div + 24 70 0x000db bool 12 true + 71 0x000dc int 81 09 9 + 72 0x000de xref 84 d4 div + 25 73 0x000e0 int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e9 int 81 ff -1 + 75 0x000eb xref 84 e1 div + 26 76 0x000ed int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f6 int 81 ff -1 + 78 0x000f8 xref 84 ee div diff --git a/tests/0028_div/code2.log.ref b/tests/0028_div/code2.log.ref new file mode 100644 index 0000000..3f0e4e6 --- /dev/null +++ b/tests/0028_div/code2.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a prim 83 21 div + 2 4 0x0000c int 11 1 + 5 0x0000d int 21 2 + 6 0x0000e prim 83 21 div + 3 7 0x00010 int 81 ff -1 + 8 0x00012 int 21 2 + 9 0x00013 prim 83 21 div + 4 10 0x00015 int 11 1 + 11 0x00016 int 81 fe -2 + 12 0x00018 prim 83 21 div + 5 13 0x0001a int 81 ff -1 + 14 0x0001c int 81 fe -2 + 15 0x0001e prim 83 21 div + 6 16 0x00020 int 81 14 20 + 17 0x00022 int 71 7 + 18 0x00023 prim 83 21 div + 7 19 0x00025 int 81 ec -20 + 20 0x00027 int 71 7 + 21 0x00028 prim 83 21 div + 8 22 0x0002a int 81 14 20 + 23 0x0002c int 81 f9 -7 + 24 0x0002e prim 83 21 div + 9 25 0x00030 int 81 ec -20 + 26 0x00032 int 81 f9 -7 + 27 0x00034 prim 83 21 div + 10 28 0x00036 int 91 67 75 30055 + 29 0x00039 int 81 64 100 + 30 0x0003b prim 83 21 div + 11 31 0x0003d int 91 99 8a -30055 + 32 0x00040 int 81 64 100 + 33 0x00042 prim 83 21 div + 12 34 0x00044 int 91 67 75 30055 + 35 0x00047 int 81 9c -100 + 36 0x00049 prim 83 21 div + 13 37 0x0004b int 91 99 8a -30055 + 38 0x0004e int 81 9c -100 + 39 0x00050 prim 83 21 div + 14 40 0x00052 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005b int c1 b7 28 23 5e 05 23054198967 + 42 0x00061 prim 83 21 div + 15 43 0x00063 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006c int c1 b7 28 23 5e 05 23054198967 + 45 0x00072 prim 83 21 div + 16 46 0x00074 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007d int c1 49 d7 dc a1 fa -23054198967 + 48 0x00083 prim 83 21 div + 17 49 0x00085 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008e int c1 49 d7 dc a1 fa -23054198967 + 51 0x00094 prim 83 21 div + 18 52 0x00096 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x0009f int a1 56 34 12 1193046 + 54 0x000a3 prim 83 21 div + 19 55 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000ae int a1 56 34 12 1193046 + 57 0x000b2 prim 83 21 div + 20 58 0x000b4 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000bd int a1 aa cb ed -1193046 + 60 0x000c1 prim 83 21 div + 21 61 0x000c3 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cc int a1 aa cb ed -1193046 + 63 0x000d0 prim 83 21 div + 22 64 0x000d2 bool 12 true + 65 0x000d3 bool 12 true + 66 0x000d4 prim 83 21 div + 23 67 0x000d6 bool 02 false + 68 0x000d7 bool 12 true + 69 0x000d8 prim 83 21 div + 24 70 0x000da bool 12 true + 71 0x000db int 81 09 9 + 72 0x000dd prim 83 21 div + 25 73 0x000df int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e8 int 81 ff -1 + 75 0x000ea prim 83 21 div + 26 76 0x000ec int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f5 int 81 ff -1 + 78 0x000f7 prim 83 21 div diff --git a/tests/0028_div/main.gs b/tests/0028_div/main.gs new file mode 100644 index 0000000..f5d10e7 --- /dev/null +++ b/tests/0028_div/main.gs @@ -0,0 +1,26 @@ +0 1 div +1 2 div +-1 2 div +1 -2 div +-1 -2 div +20 7 div +-20 7 div +20 -7 div +-20 -7 div +30055 100 div +-30055 100 div +30055 -100 div +-30055 -100 div +1311768465173141119 23054198967 div +-1311768465173141119 23054198967 div +1311768465173141119 -23054198967 div +-1311768465173141119 -23054198967 div +1311768465173141119 1193046 div +-1311768465173141119 1193046 div +1311768465173141119 -1193046 div +-1311768465173141119 -1193046 div +true true div +false true div +true 9 div +-0x7fffffffffffffff -1 div +-0x8000000000000000 -1 div diff --git a/tests/0028_div/mem.log.ref b/tests/0028_div/mem.log.ref new file mode 100644 index 0000000..1a4c83d --- /dev/null +++ b/tests/0028_div/mem.log.ref @@ -0,0 +1,824 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 304] + 8: 0.00, 0x001d6ba4[ 72] + 9: 188.01, 0x001d6bf4[ 56] + 10: 192.01, 0x001d6c34[ 72] + 11: 187.01, 0x001d6c84[ 144] + 12: 0.00, 0x001d6d1c[14848740] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 01 11 38 64 69 76 11 21 uQ..Bz.`..8div.! + 38 64 69 76 81 ff 21 38 64 69 76 11 81 fe 38 64 8div..!8div...8d + 69 76 81 ff 81 fe 38 64 69 76 81 14 71 38 64 69 iv....8div..q8di + 76 81 ec 71 38 64 69 76 81 14 81 f9 38 64 69 76 v..q8div....8div + 81 ec 81 f9 38 64 69 76 91 67 75 81 64 38 64 69 ....8div.gu.d8di + 76 91 99 8a 81 64 38 64 69 76 91 67 75 81 9c 38 v....d8div.gu..8 + 64 69 76 91 99 8a 81 9c 38 64 69 76 f1 7f 56 34 div.....8div..V4 + 12 78 56 34 12 c1 b7 28 23 5e 05 38 64 69 76 f1 .xV4...(#^.8div. + 81 a9 cb ed 87 a9 cb ed c1 b7 28 23 5e 05 38 64 ..........(#^.8d + 69 76 f1 7f 56 34 12 78 56 34 12 c1 49 d7 dc a1 iv..V4.xV4..I... + fa 38 64 69 76 f1 81 a9 cb ed 87 a9 cb ed c1 49 .8div..........I + d7 dc a1 fa 38 64 69 76 f1 7f 56 34 12 78 56 34 ....8div..V4.xV4 + 12 a1 56 34 12 38 64 69 76 f1 81 a9 cb ed 87 a9 ..V4.8div....... + cb ed a1 56 34 12 38 64 69 76 f1 7f 56 34 12 78 ...V4.8div..V4.x + 56 34 12 a1 aa cb ed 38 64 69 76 f1 81 a9 cb ed V4.....8div..... + 87 a9 cb ed a1 aa cb ed 38 64 69 76 12 12 38 64 ........8div..8d + 69 76 02 12 38 64 69 76 12 81 09 38 64 69 76 f1 iv..8div...8div. + 01 00 00 00 00 00 00 80 81 ff 38 64 69 76 f1 00 ..........8div.. + 00 00 00 00 00 00 80 81 ff 38 64 69 76 .........8div + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <0 (0x0)> + [ 2] #198.1.1.num.int <0 (0x0)> + [ 3] #201.1.1.num.int <0 (0x0)> + [ 4] #204.1.1.num.int <0 (0x0)> + [ 5] #207.1.1.num.int <2 (0x2)> + [ 6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [ 7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [ 8] #216.1.1.num.int <2 (0x2)> + [ 9] #219.1.1.num.int <300 (0x12c)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [15] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [16] #240.1.1.num.int <56899329 (0x3643701)> + [17] #243.1.1.num.int <1099512060032 (0x10000069880)> + [18] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [19] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [20] #252.1.1.num.int <1099512060032 (0x10000069880)> + [21] #255.1.1.num.bool <1 (0x1)> + [22] #189.2.1.num.bool <0 (0x0)> + [23] #194.2.1.num.bool <1 (0x1)> + [24] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [25] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #202.2.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x12d (0x129) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.2.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #194.2.1.num.bool <1 (0x1)> + #195.1.1.num.int <0 (0x0)> + #198.1.1.num.int <0 (0x0)> + #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + #201.1.1.num.int <0 (0x0)> + #202.2.1.num.int <-1 (0xffffffffffffffff)> + #204.1.1.num.int <0 (0x0)> + #207.1.1.num.int <2 (0x2)> + #210.1.1.num.int <-2 (0xfffffffffffffffe)> + #213.1.1.num.int <-2 (0xfffffffffffffffe)> + #216.1.1.num.int <2 (0x2)> + #219.1.1.num.int <300 (0x12c)> + #222.1.1.num.int <-300 (0xfffffffffffffed4)> + #225.1.1.num.int <-300 (0xfffffffffffffed4)> + #228.1.1.num.int <300 (0x12c)> + #231.1.1.num.int <56899329 (0x3643701)> + #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + #240.1.1.num.int <56899329 (0x3643701)> + #243.1.1.num.int <1099512060032 (0x10000069880)> + #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + #252.1.1.num.int <1099512060032 (0x10000069880)> + #255.1.1.num.bool <1 (0x1)> diff --git a/tests/0028_div/screen.log.ref b/tests/0028_div/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0028_div/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0028_div/trace.log.ref b/tests/0028_div/trace.log.ref new file mode 100644 index 0000000..61bbb4a --- /dev/null +++ b/tests/0028_div/trace.log.ref @@ -0,0 +1,1448 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <0 (0x0)> +IP: #186:0x9, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #189.1.1.num.int <0 (0x0)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <2 (0x2)> + [1] #193.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <2 (0x2)> + [1] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x17, type 8, 24[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <0 (0x0)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <0 (0x0)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1c, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 8, 31[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #198.1.1.num.int <0 (0x0)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x24, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 8, 39[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <0 (0x0)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <20 (0x14)> + [1] #204.1.1.num.int <0 (0x0)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2c, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <7 (0x7)> + [1] #205.1.1.num.int <20 (0x14)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <2 (0x2)> + [1] #204.1.1.num.int <0 (0x0)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x31, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #207.1.1.num.int <2 (0x2)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x33, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <7 (0x7)> + [1] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x34, type 8, 53[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #207.1.1.num.int <2 (0x2)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3a, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3c, type 8, 61[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x40, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x42, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x44, type 8, 69[3] +GC: --#215.1.1.num.int +GC: --#214.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <2 (0x2)> + [1] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x48, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <30055 (0x7567)> + [1] #216.1.1.num.int <2 (0x2)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <100 (0x64)> + [1] #217.1.1.num.int <30055 (0x7567)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4d, type 8, 78[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <300 (0x12c)> + [1] #216.1.1.num.int <2 (0x2)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x51, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #219.1.1.num.int <300 (0x12c)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <100 (0x64)> + [1] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x56, type 8, 87[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #219.1.1.num.int <300 (0x12c)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <30055 (0x7567)> + [1] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5d, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #223.1.1.num.int <30055 (0x7567)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 8, 96[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x63, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x66, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <300 (0x12c)> + [1] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #228.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x75, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7b, type 8, 124[3] +GC: --#230.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <56899329 (0x3643701)> + [1] #228.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #231.1.1.num.int <56899329 (0x3643701)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x88, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8e, type 8, 143[3] +GC: --#233.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #231.1.1.num.int <56899329 (0x3643701)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x92, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9b, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 8, 162[3] +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa5, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xae, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb4, type 8, 181[3] +GC: --#239.1.1.num.int +GC: --#238.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <56899329 (0x3643701)> + [1] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb8, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #240.1.1.num.int <56899329 (0x3643701)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc1, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <1193046 (0x123456)> + [1] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc5, type 8, 198[3] +GC: --#242.1.1.num.int +GC: --#241.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <1099512060032 (0x10000069880)> + [1] #240.1.1.num.int <56899329 (0x3643701)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc9, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #243.1.1.num.int <1099512060032 (0x10000069880)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <1193046 (0x123456)> + [1] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd6, type 8, 215[3] +GC: --#245.1.1.num.int +GC: --#244.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #243.1.1.num.int <1099512060032 (0x10000069880)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xda, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe3, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe7, type 8, 232[3] +GC: --#248.1.1.num.int +GC: --#247.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xeb, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf4, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf8, type 8, 249[3] +GC: --#251.1.1.num.int +GC: --#250.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1099512060032 (0x10000069880)> + [1] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfc, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <1099512060032 (0x10000069880)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.bool <1 (0x1)> + [1] #253.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfe, type 8, 255[3] +GC: --#254.1.1.num.bool +GC: --#253.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <1099512060032 (0x10000069880)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0x102, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x103, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.bool <1 (0x1)> + [1] #256.1.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x104, type 8, 261[3] +GC: --#257.1.1.num.bool +GC: --#256.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x108, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x109, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.2.1.num.int <9 (0x9)> + [1] #190.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10b, type 8, 268[3] +GC: --#193.2.1.num.int +GC: --#190.2.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10f, type 1, -9223372036854775807 (0x8000000000000001) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x118, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <1099512060032 (0x10000069880)> + [6] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #243.1.1.num.int <1099512060032 (0x10000069880)> + [9] #240.1.1.num.int <56899329 (0x3643701)> + [10] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #231.1.1.num.int <56899329 (0x3643701)> + [13] #228.1.1.num.int <300 (0x12c)> + [14] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #219.1.1.num.int <300 (0x12c)> + [17] #216.1.1.num.int <2 (0x2)> + [18] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #207.1.1.num.int <2 (0x2)> + [21] #204.1.1.num.int <0 (0x0)> + [22] #201.1.1.num.int <0 (0x0)> + [23] #198.1.1.num.int <0 (0x0)> + [24] #195.1.1.num.int <0 (0x0)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11a, type 8, 283[3] +GC: --#197.2.1.num.int +GC: --#196.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11e, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <1099512060032 (0x10000069880)> + [6] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #243.1.1.num.int <1099512060032 (0x10000069880)> + [9] #240.1.1.num.int <56899329 (0x3643701)> + [10] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #231.1.1.num.int <56899329 (0x3643701)> + [13] #228.1.1.num.int <300 (0x12c)> + [14] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #219.1.1.num.int <300 (0x12c)> + [17] #216.1.1.num.int <2 (0x2)> + [18] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #207.1.1.num.int <2 (0x2)> + [21] #204.1.1.num.int <0 (0x0)> + [22] #201.1.1.num.int <0 (0x0)> + [23] #198.1.1.num.int <0 (0x0)> + [24] #195.1.1.num.int <0 (0x0)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x127, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <1099512060032 (0x10000069880)> + [7] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #243.1.1.num.int <1099512060032 (0x10000069880)> + [10] #240.1.1.num.int <56899329 (0x3643701)> + [11] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #228.1.1.num.int <300 (0x12c)> + [15] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #219.1.1.num.int <300 (0x12c)> + [18] #216.1.1.num.int <2 (0x2)> + [19] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #207.1.1.num.int <2 (0x2)> + [22] #204.1.1.num.int <0 (0x0)> + [23] #201.1.1.num.int <0 (0x0)> + [24] #198.1.1.num.int <0 (0x0)> + [25] #195.1.1.num.int <0 (0x0)> + [26] #191.1.1.num.int <0 (0x0)> +IP: #186:0x129, type 8, 298[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <1099512060032 (0x10000069880)> + [7] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #243.1.1.num.int <1099512060032 (0x10000069880)> + [10] #240.1.1.num.int <56899329 (0x3643701)> + [11] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #228.1.1.num.int <300 (0x12c)> + [15] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #219.1.1.num.int <300 (0x12c)> + [18] #216.1.1.num.int <2 (0x2)> + [19] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #207.1.1.num.int <2 (0x2)> + [22] #204.1.1.num.int <0 (0x0)> + [23] #201.1.1.num.int <0 (0x0)> + [24] #198.1.1.num.int <0 (0x0)> + [25] #195.1.1.num.int <0 (0x0)> + [26] #191.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186:0x129 diff --git a/tests/0029_mod/basic.log.ref b/tests/0029_mod/basic.log.ref new file mode 100644 index 0000000..c85002d --- /dev/null +++ b/tests/0029_mod/basic.log.ref @@ -0,0 +1,1369 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <203647 (0x31b7f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <203647 (0x31b7f)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9 (0x9)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #xxxx.1.1.num.int <203647 (0x31b7f)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #xxxx.1.1.num.int <55 (0x37)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #xxxx.1.1.num.int <6 (0x6)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.2.1.num.int <0 (0x0)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #xxxx.1.1.num.int <203647 (0x31b7f)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #xxxx.1.1.num.int <55 (0x37)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #xxxx.1.1.num.int <6 (0x6)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #xxxx.1.1.num.int <203647 (0x31b7f)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #xxxx.1.1.num.int <55 (0x37)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #xxxx.1.1.num.int <6 (0x6)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #xxxx.1.1.num.int <203647 (0x31b7f)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #xxxx.1.1.num.int <55 (0x37)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #xxxx.1.1.num.int <6 (0x6)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186 diff --git a/tests/0029_mod/code.log.ref b/tests/0029_mod/code.log.ref new file mode 100644 index 0000000..9d1dadc --- /dev/null +++ b/tests/0029_mod/code.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 6d 6f 64 mod + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 word 38 6d 6f 64 mod + 3 7 0x00014 int 81 ff -1 + 8 0x00016 int 21 2 + 9 0x00017 word 38 6d 6f 64 mod + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e word 38 6d 6f 64 mod + 5 13 0x00022 int 81 ff -1 + 14 0x00024 int 81 fe -2 + 15 0x00026 word 38 6d 6f 64 mod + 6 16 0x0002a int 81 14 20 + 17 0x0002c int 71 7 + 18 0x0002d word 38 6d 6f 64 mod + 7 19 0x00031 int 81 ec -20 + 20 0x00033 int 71 7 + 21 0x00034 word 38 6d 6f 64 mod + 8 22 0x00038 int 81 14 20 + 23 0x0003a int 81 f9 -7 + 24 0x0003c word 38 6d 6f 64 mod + 9 25 0x00040 int 81 ec -20 + 26 0x00042 int 81 f9 -7 + 27 0x00044 word 38 6d 6f 64 mod + 10 28 0x00048 int 91 67 75 30055 + 29 0x0004b int 81 64 100 + 30 0x0004d word 38 6d 6f 64 mod + 11 31 0x00051 int 91 99 8a -30055 + 32 0x00054 int 81 64 100 + 33 0x00056 word 38 6d 6f 64 mod + 12 34 0x0005a int 91 67 75 30055 + 35 0x0005d int 81 9c -100 + 36 0x0005f word 38 6d 6f 64 mod + 13 37 0x00063 int 91 99 8a -30055 + 38 0x00066 int 81 9c -100 + 39 0x00068 word 38 6d 6f 64 mod + 14 40 0x0006c int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x00075 int c1 b7 28 23 5e 05 23054198967 + 42 0x0007b word 38 6d 6f 64 mod + 15 43 0x0007f int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x00088 int c1 b7 28 23 5e 05 23054198967 + 45 0x0008e word 38 6d 6f 64 mod + 16 46 0x00092 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0009b int c1 49 d7 dc a1 fa -23054198967 + 48 0x000a1 word 38 6d 6f 64 mod + 17 49 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x000ae int c1 49 d7 dc a1 fa -23054198967 + 51 0x000b4 word 38 6d 6f 64 mod + 18 52 0x000b8 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000c1 int a1 56 34 12 1193046 + 54 0x000c5 word 38 6d 6f 64 mod + 19 55 0x000c9 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000d2 int a1 56 34 12 1193046 + 57 0x000d6 word 38 6d 6f 64 mod + 20 58 0x000da int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000e3 int a1 aa cb ed -1193046 + 60 0x000e7 word 38 6d 6f 64 mod + 21 61 0x000eb int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000f4 int a1 aa cb ed -1193046 + 63 0x000f8 word 38 6d 6f 64 mod + 22 64 0x000fc bool 12 true + 65 0x000fd bool 12 true + 66 0x000fe word 38 6d 6f 64 mod + 23 67 0x00102 bool 02 false + 68 0x00103 bool 12 true + 69 0x00104 word 38 6d 6f 64 mod + 24 70 0x00108 bool 12 true + 71 0x00109 int 81 09 9 + 72 0x0010b word 38 6d 6f 64 mod + 25 73 0x0010f int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x00118 int 81 ff -1 + 75 0x0011a word 38 6d 6f 64 mod + 26 76 0x0011e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x00127 int 81 ff -1 + 78 0x00129 word 38 6d 6f 64 mod diff --git a/tests/0029_mod/code1.log.ref b/tests/0029_mod/code1.log.ref new file mode 100644 index 0000000..71e2f4c --- /dev/null +++ b/tests/0029_mod/code1.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 6d 6f 64 mod + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 xref 64 mod + 3 7 0x00011 int 81 ff -1 + 8 0x00013 int 21 2 + 9 0x00014 xref 84 0a mod + 4 10 0x00016 int 11 1 + 11 0x00017 int 81 fe -2 + 12 0x00019 xref 84 0f mod + 5 13 0x0001b int 81 ff -1 + 14 0x0001d int 81 fe -2 + 15 0x0001f xref 84 15 mod + 6 16 0x00021 int 81 14 20 + 17 0x00023 int 71 7 + 18 0x00024 xref 84 1a mod + 7 19 0x00026 int 81 ec -20 + 20 0x00028 int 71 7 + 21 0x00029 xref 84 1f mod + 8 22 0x0002b int 81 14 20 + 23 0x0002d int 81 f9 -7 + 24 0x0002f xref 84 25 mod + 9 25 0x00031 int 81 ec -20 + 26 0x00033 int 81 f9 -7 + 27 0x00035 xref 84 2b mod + 10 28 0x00037 int 91 67 75 30055 + 29 0x0003a int 81 64 100 + 30 0x0003c xref 84 32 mod + 11 31 0x0003e int 91 99 8a -30055 + 32 0x00041 int 81 64 100 + 33 0x00043 xref 84 39 mod + 12 34 0x00045 int 91 67 75 30055 + 35 0x00048 int 81 9c -100 + 36 0x0004a xref 84 40 mod + 13 37 0x0004c int 91 99 8a -30055 + 38 0x0004f int 81 9c -100 + 39 0x00051 xref 84 47 mod + 14 40 0x00053 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005c int c1 b7 28 23 5e 05 23054198967 + 42 0x00062 xref 84 58 mod + 15 43 0x00064 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006d int c1 b7 28 23 5e 05 23054198967 + 45 0x00073 xref 84 69 mod + 16 46 0x00075 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007e int c1 49 d7 dc a1 fa -23054198967 + 48 0x00084 xref 84 7a mod + 17 49 0x00086 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008f int c1 49 d7 dc a1 fa -23054198967 + 51 0x00095 xref 84 8b mod + 18 52 0x00097 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000a0 int a1 56 34 12 1193046 + 54 0x000a4 xref 84 9a mod + 19 55 0x000a6 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000af int a1 56 34 12 1193046 + 57 0x000b3 xref 84 a9 mod + 20 58 0x000b5 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000be int a1 aa cb ed -1193046 + 60 0x000c2 xref 84 b8 mod + 21 61 0x000c4 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cd int a1 aa cb ed -1193046 + 63 0x000d1 xref 84 c7 mod + 22 64 0x000d3 bool 12 true + 65 0x000d4 bool 12 true + 66 0x000d5 xref 84 cb mod + 23 67 0x000d7 bool 02 false + 68 0x000d8 bool 12 true + 69 0x000d9 xref 84 cf mod + 24 70 0x000db bool 12 true + 71 0x000dc int 81 09 9 + 72 0x000de xref 84 d4 mod + 25 73 0x000e0 int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e9 int 81 ff -1 + 75 0x000eb xref 84 e1 mod + 26 76 0x000ed int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f6 int 81 ff -1 + 78 0x000f8 xref 84 ee mod diff --git a/tests/0029_mod/code2.log.ref b/tests/0029_mod/code2.log.ref new file mode 100644 index 0000000..61c8b82 --- /dev/null +++ b/tests/0029_mod/code2.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a prim 83 22 mod + 2 4 0x0000c int 11 1 + 5 0x0000d int 21 2 + 6 0x0000e prim 83 22 mod + 3 7 0x00010 int 81 ff -1 + 8 0x00012 int 21 2 + 9 0x00013 prim 83 22 mod + 4 10 0x00015 int 11 1 + 11 0x00016 int 81 fe -2 + 12 0x00018 prim 83 22 mod + 5 13 0x0001a int 81 ff -1 + 14 0x0001c int 81 fe -2 + 15 0x0001e prim 83 22 mod + 6 16 0x00020 int 81 14 20 + 17 0x00022 int 71 7 + 18 0x00023 prim 83 22 mod + 7 19 0x00025 int 81 ec -20 + 20 0x00027 int 71 7 + 21 0x00028 prim 83 22 mod + 8 22 0x0002a int 81 14 20 + 23 0x0002c int 81 f9 -7 + 24 0x0002e prim 83 22 mod + 9 25 0x00030 int 81 ec -20 + 26 0x00032 int 81 f9 -7 + 27 0x00034 prim 83 22 mod + 10 28 0x00036 int 91 67 75 30055 + 29 0x00039 int 81 64 100 + 30 0x0003b prim 83 22 mod + 11 31 0x0003d int 91 99 8a -30055 + 32 0x00040 int 81 64 100 + 33 0x00042 prim 83 22 mod + 12 34 0x00044 int 91 67 75 30055 + 35 0x00047 int 81 9c -100 + 36 0x00049 prim 83 22 mod + 13 37 0x0004b int 91 99 8a -30055 + 38 0x0004e int 81 9c -100 + 39 0x00050 prim 83 22 mod + 14 40 0x00052 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005b int c1 b7 28 23 5e 05 23054198967 + 42 0x00061 prim 83 22 mod + 15 43 0x00063 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006c int c1 b7 28 23 5e 05 23054198967 + 45 0x00072 prim 83 22 mod + 16 46 0x00074 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007d int c1 49 d7 dc a1 fa -23054198967 + 48 0x00083 prim 83 22 mod + 17 49 0x00085 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008e int c1 49 d7 dc a1 fa -23054198967 + 51 0x00094 prim 83 22 mod + 18 52 0x00096 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x0009f int a1 56 34 12 1193046 + 54 0x000a3 prim 83 22 mod + 19 55 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000ae int a1 56 34 12 1193046 + 57 0x000b2 prim 83 22 mod + 20 58 0x000b4 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000bd int a1 aa cb ed -1193046 + 60 0x000c1 prim 83 22 mod + 21 61 0x000c3 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cc int a1 aa cb ed -1193046 + 63 0x000d0 prim 83 22 mod + 22 64 0x000d2 bool 12 true + 65 0x000d3 bool 12 true + 66 0x000d4 prim 83 22 mod + 23 67 0x000d6 bool 02 false + 68 0x000d7 bool 12 true + 69 0x000d8 prim 83 22 mod + 24 70 0x000da bool 12 true + 71 0x000db int 81 09 9 + 72 0x000dd prim 83 22 mod + 25 73 0x000df int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e8 int 81 ff -1 + 75 0x000ea prim 83 22 mod + 26 76 0x000ec int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f5 int 81 ff -1 + 78 0x000f7 prim 83 22 mod diff --git a/tests/0029_mod/main.gs b/tests/0029_mod/main.gs new file mode 100644 index 0000000..cc857a1 --- /dev/null +++ b/tests/0029_mod/main.gs @@ -0,0 +1,26 @@ +0 1 mod +1 2 mod +-1 2 mod +1 -2 mod +-1 -2 mod +20 7 mod +-20 7 mod +20 -7 mod +-20 -7 mod +30055 100 mod +-30055 100 mod +30055 -100 mod +-30055 -100 mod +1311768465173141119 23054198967 mod +-1311768465173141119 23054198967 mod +1311768465173141119 -23054198967 mod +-1311768465173141119 -23054198967 mod +1311768465173141119 1193046 mod +-1311768465173141119 1193046 mod +1311768465173141119 -1193046 mod +-1311768465173141119 -1193046 mod +true true mod +false true mod +true 9 mod +-0x7fffffffffffffff -1 mod +-0x8000000000000000 -1 mod diff --git a/tests/0029_mod/mem.log.ref b/tests/0029_mod/mem.log.ref new file mode 100644 index 0000000..3397e63 --- /dev/null +++ b/tests/0029_mod/mem.log.ref @@ -0,0 +1,824 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 304] + 8: 0.00, 0x001d6ba4[ 72] + 9: 188.01, 0x001d6bf4[ 56] + 10: 192.01, 0x001d6c34[ 72] + 11: 187.01, 0x001d6c84[ 144] + 12: 0.00, 0x001d6d1c[14848740] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 01 11 38 6d 6f 64 11 21 uQ..Bz.`..8mod.! + 38 6d 6f 64 81 ff 21 38 6d 6f 64 11 81 fe 38 6d 8mod..!8mod...8m + 6f 64 81 ff 81 fe 38 6d 6f 64 81 14 71 38 6d 6f od....8mod..q8mo + 64 81 ec 71 38 6d 6f 64 81 14 81 f9 38 6d 6f 64 d..q8mod....8mod + 81 ec 81 f9 38 6d 6f 64 91 67 75 81 64 38 6d 6f ....8mod.gu.d8mo + 64 91 99 8a 81 64 38 6d 6f 64 91 67 75 81 9c 38 d....d8mod.gu..8 + 6d 6f 64 91 99 8a 81 9c 38 6d 6f 64 f1 7f 56 34 mod.....8mod..V4 + 12 78 56 34 12 c1 b7 28 23 5e 05 38 6d 6f 64 f1 .xV4...(#^.8mod. + 81 a9 cb ed 87 a9 cb ed c1 b7 28 23 5e 05 38 6d ..........(#^.8m + 6f 64 f1 7f 56 34 12 78 56 34 12 c1 49 d7 dc a1 od..V4.xV4..I... + fa 38 6d 6f 64 f1 81 a9 cb ed 87 a9 cb ed c1 49 .8mod..........I + d7 dc a1 fa 38 6d 6f 64 f1 7f 56 34 12 78 56 34 ....8mod..V4.xV4 + 12 a1 56 34 12 38 6d 6f 64 f1 81 a9 cb ed 87 a9 ..V4.8mod....... + cb ed a1 56 34 12 38 6d 6f 64 f1 7f 56 34 12 78 ...V4.8mod..V4.x + 56 34 12 a1 aa cb ed 38 6d 6f 64 f1 81 a9 cb ed V4.....8mod..... + 87 a9 cb ed a1 aa cb ed 38 6d 6f 64 12 12 38 6d ........8mod..8m + 6f 64 02 12 38 6d 6f 64 12 81 09 38 6d 6f 64 f1 od..8mod...8mod. + 01 00 00 00 00 00 00 80 81 ff 38 6d 6f 64 f1 00 ..........8mod.. + 00 00 00 00 00 00 80 81 ff 38 6d 6f 64 .........8mod + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <1 (0x1)> + [ 2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [ 3] #201.1.1.num.int <1 (0x1)> + [ 4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [ 5] #207.1.1.num.int <6 (0x6)> + [ 6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [ 7] #213.1.1.num.int <6 (0x6)> + [ 8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [ 9] #219.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [15] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [16] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [17] #243.1.1.num.int <203647 (0x31b7f)> + [18] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [19] #249.1.1.num.int <203647 (0x31b7f)> + [20] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [21] #255.1.1.num.bool <1 (0x1)> + [22] #189.2.1.num.bool <0 (0x0)> + [23] #194.2.1.num.bool <1 (0x1)> + [24] #199.2.1.num.int <0 (0x0)> + [25] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #202.2.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x12d (0x129) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.2.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #194.2.1.num.bool <1 (0x1)> + #195.1.1.num.int <1 (0x1)> + #198.1.1.num.int <-1 (0xffffffffffffffff)> + #199.2.1.num.int <0 (0x0)> + #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + #201.1.1.num.int <1 (0x1)> + #202.2.1.num.int <-1 (0xffffffffffffffff)> + #204.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <6 (0x6)> + #210.1.1.num.int <-6 (0xfffffffffffffffa)> + #213.1.1.num.int <6 (0x6)> + #216.1.1.num.int <-6 (0xfffffffffffffffa)> + #219.1.1.num.int <55 (0x37)> + #222.1.1.num.int <-55 (0xffffffffffffffc9)> + #225.1.1.num.int <55 (0x37)> + #228.1.1.num.int <-55 (0xffffffffffffffc9)> + #231.1.1.num.int <13318347976 (0x319d5dcc8)> + #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + #237.1.1.num.int <13318347976 (0x319d5dcc8)> + #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + #243.1.1.num.int <203647 (0x31b7f)> + #246.1.1.num.int <-203647 (0xfffffffffffce481)> + #249.1.1.num.int <203647 (0x31b7f)> + #252.1.1.num.int <-203647 (0xfffffffffffce481)> + #255.1.1.num.bool <1 (0x1)> diff --git a/tests/0029_mod/screen.log.ref b/tests/0029_mod/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0029_mod/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0029_mod/trace.log.ref b/tests/0029_mod/trace.log.ref new file mode 100644 index 0000000..9929ca4 --- /dev/null +++ b/tests/0029_mod/trace.log.ref @@ -0,0 +1,1448 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <0 (0x0)> +IP: #186:0x9, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #189.1.1.num.int <0 (0x0)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <2 (0x2)> + [1] #193.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <2 (0x2)> + [1] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x17, type 8, 24[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1c, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 8, 31[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x24, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 8, 39[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <20 (0x14)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2c, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <7 (0x7)> + [1] #205.1.1.num.int <20 (0x14)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <6 (0x6)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x31, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #207.1.1.num.int <6 (0x6)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x33, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <7 (0x7)> + [1] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x34, type 8, 53[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #207.1.1.num.int <6 (0x6)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3a, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3c, type 8, 61[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <6 (0x6)> + [1] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x40, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #213.1.1.num.int <6 (0x6)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x42, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x44, type 8, 69[3] +GC: --#215.1.1.num.int +GC: --#214.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #213.1.1.num.int <6 (0x6)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x48, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <30055 (0x7567)> + [1] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <100 (0x64)> + [1] #217.1.1.num.int <30055 (0x7567)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4d, type 8, 78[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <55 (0x37)> + [1] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x51, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #219.1.1.num.int <55 (0x37)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <100 (0x64)> + [1] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x56, type 8, 87[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #219.1.1.num.int <55 (0x37)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <30055 (0x7567)> + [1] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5d, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #223.1.1.num.int <30055 (0x7567)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 8, 96[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <55 (0x37)> + [1] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x63, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #225.1.1.num.int <55 (0x37)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x66, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #225.1.1.num.int <55 (0x37)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x75, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7b, type 8, 124[3] +GC: --#230.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x88, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8e, type 8, 143[3] +GC: --#233.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x92, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9b, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 8, 162[3] +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa5, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xae, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb4, type 8, 181[3] +GC: --#239.1.1.num.int +GC: --#238.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb8, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc1, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <1193046 (0x123456)> + [1] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc5, type 8, 198[3] +GC: --#242.1.1.num.int +GC: --#241.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <203647 (0x31b7f)> + [1] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc9, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #243.1.1.num.int <203647 (0x31b7f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <1193046 (0x123456)> + [1] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd6, type 8, 215[3] +GC: --#245.1.1.num.int +GC: --#244.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #243.1.1.num.int <203647 (0x31b7f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xda, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe3, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe7, type 8, 232[3] +GC: --#248.1.1.num.int +GC: --#247.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <203647 (0x31b7f)> + [1] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xeb, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #249.1.1.num.int <203647 (0x31b7f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf4, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf8, type 8, 249[3] +GC: --#251.1.1.num.int +GC: --#250.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #249.1.1.num.int <203647 (0x31b7f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfc, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.bool <1 (0x1)> + [1] #253.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfe, type 8, 255[3] +GC: --#254.1.1.num.bool +GC: --#253.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0x102, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x103, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.bool <1 (0x1)> + [1] #256.1.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x104, type 8, 261[3] +GC: --#257.1.1.num.bool +GC: --#256.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x108, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x109, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.2.1.num.int <9 (0x9)> + [1] #190.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10b, type 8, 268[3] +GC: --#193.2.1.num.int +GC: --#190.2.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10f, type 1, -9223372036854775807 (0x8000000000000001) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x118, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #249.1.1.num.int <203647 (0x31b7f)> + [7] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #243.1.1.num.int <203647 (0x31b7f)> + [9] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #225.1.1.num.int <55 (0x37)> + [15] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #219.1.1.num.int <55 (0x37)> + [17] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #213.1.1.num.int <6 (0x6)> + [19] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #207.1.1.num.int <6 (0x6)> + [21] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #201.1.1.num.int <1 (0x1)> + [23] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11a, type 8, 283[3] +GC: --#197.2.1.num.int +GC: --#196.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <0 (0x0)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11e, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #199.2.1.num.int <0 (0x0)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #249.1.1.num.int <203647 (0x31b7f)> + [7] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #243.1.1.num.int <203647 (0x31b7f)> + [9] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #225.1.1.num.int <55 (0x37)> + [15] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #219.1.1.num.int <55 (0x37)> + [17] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #213.1.1.num.int <6 (0x6)> + [19] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #207.1.1.num.int <6 (0x6)> + [21] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #201.1.1.num.int <1 (0x1)> + [23] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x127, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <0 (0x0)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #249.1.1.num.int <203647 (0x31b7f)> + [8] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #243.1.1.num.int <203647 (0x31b7f)> + [10] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #225.1.1.num.int <55 (0x37)> + [16] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #219.1.1.num.int <55 (0x37)> + [18] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #213.1.1.num.int <6 (0x6)> + [20] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #207.1.1.num.int <6 (0x6)> + [22] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #201.1.1.num.int <1 (0x1)> + [24] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #191.1.1.num.int <0 (0x0)> +IP: #186:0x129, type 8, 298[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <0 (0x0)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #249.1.1.num.int <203647 (0x31b7f)> + [8] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #243.1.1.num.int <203647 (0x31b7f)> + [10] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #225.1.1.num.int <55 (0x37)> + [16] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #219.1.1.num.int <55 (0x37)> + [18] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #213.1.1.num.int <6 (0x6)> + [20] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #207.1.1.num.int <6 (0x6)> + [22] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #201.1.1.num.int <1 (0x1)> + [24] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #191.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186:0x129 diff --git a/tests/0030_and/basic.log.ref b/tests/0030_and/basic.log.ref new file mode 100644 index 0000000..7bd5fd4 --- /dev/null +++ b/tests/0030_and/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <48 (0x30)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <48 (0x30)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <48 (0x30)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <48 (0x30)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0030_and/code.log.ref b/tests/0030_and/code.log.ref new file mode 100644 index 0000000..17f522e --- /dev/null +++ b/tests/0030_and/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 61 6e 64 and + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 word 38 61 6e 64 and + 3 7 0x00014 bool 02 false + 8 0x00015 bool 12 true + 9 0x00016 word 38 61 6e 64 and + 4 10 0x0001a bool 02 false + 11 0x0001b bool 02 false + 12 0x0001c word 38 61 6e 64 and + 5 13 0x00020 int 91 f0 00 0xf0 + 14 0x00023 int 81 35 0x35 + 15 0x00025 word 38 61 6e 64 and + 6 16 0x00029 int 91 83 00 0x83 + 17 0x0002c bool 12 true + 18 0x0002d word 38 61 6e 64 and + 7 19 0x00031 bool 12 true + 20 0x00032 int 91 83 00 0x83 + 21 0x00035 word 38 61 6e 64 and diff --git a/tests/0030_and/code1.log.ref b/tests/0030_and/code1.log.ref new file mode 100644 index 0000000..c2a2dfc --- /dev/null +++ b/tests/0030_and/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 61 6e 64 and + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 xref 64 and + 3 7 0x00011 bool 02 false + 8 0x00012 bool 12 true + 9 0x00013 xref 84 09 and + 4 10 0x00015 bool 02 false + 11 0x00016 bool 02 false + 12 0x00017 xref 84 0d and + 5 13 0x00019 int 91 f0 00 0xf0 + 14 0x0001c int 81 35 0x35 + 15 0x0001e xref 84 14 and + 6 16 0x00020 int 91 83 00 0x83 + 17 0x00023 bool 12 true + 18 0x00024 xref 84 1a and + 7 19 0x00026 bool 12 true + 20 0x00027 int 91 83 00 0x83 + 21 0x0002a xref 84 20 and diff --git a/tests/0030_and/code2.log.ref b/tests/0030_and/code2.log.ref new file mode 100644 index 0000000..af18e53 --- /dev/null +++ b/tests/0030_and/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 27 and + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 27 and + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 27 and + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 27 and + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 27 and + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 27 and + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 27 and diff --git a/tests/0030_and/main.gs b/tests/0030_and/main.gs new file mode 100644 index 0000000..8b26e09 --- /dev/null +++ b/tests/0030_and/main.gs @@ -0,0 +1,7 @@ +true true and +true false and +false true and +false false and +0xf0 0x35 and +0x83 true and +true 0x83 and diff --git a/tests/0030_and/mem.log.ref b/tests/0030_and/mem.log.ref new file mode 100644 index 0000000..56724c4 --- /dev/null +++ b/tests/0030_and/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 192.01, 0x001d6b40[ 72] + 11: 0.00, 0x001d6b90[14849136] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 38 61 6e 64 12 02 uQ..Bz.`..8and.. + 38 61 6e 64 02 12 38 61 6e 64 02 02 38 61 6e 64 8and..8and..8and + 91 f0 00 81 35 38 61 6e 64 91 83 00 12 38 61 6e ....58and....8an + 64 12 91 83 00 38 61 6e 64 d....8and + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <48 (0x30)> + [ 5] #207.1.1.num.int <1 (0x1)> + [ 6] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <48 (0x30)> + #207.1.1.num.int <1 (0x1)> + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0030_and/screen.log.ref b/tests/0030_and/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0030_and/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0030_and/trace.log.ref b/tests/0030_and/trace.log.ref new file mode 100644 index 0000000..bbdcc05 --- /dev/null +++ b/tests/0030_and/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1a, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1c, type 8, 29[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x20, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x23, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x25, type 8, 38[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <48 (0x30)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x29, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <48 (0x30)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2c, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.int <48 (0x30)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x32, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1 (0x1)> + [3] #204.1.1.num.int <48 (0x30)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x35, type 8, 54[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/basic.log.ref b/tests/0031_or/basic.log.ref new file mode 100644 index 0000000..58acd92 --- /dev/null +++ b/tests/0031_or/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <245 (0xf5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <245 (0xf5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <245 (0xf5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <131 (0x83)> + [3] #xxxx.1.1.num.int <245 (0xf5)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/code.log.ref b/tests/0031_or/code.log.ref new file mode 100644 index 0000000..dfde04b --- /dev/null +++ b/tests/0031_or/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 28 6f 72 or + 2 4 0x0000d bool 12 true + 5 0x0000e bool 02 false + 6 0x0000f word 28 6f 72 or + 3 7 0x00012 bool 02 false + 8 0x00013 bool 12 true + 9 0x00014 word 28 6f 72 or + 4 10 0x00017 bool 02 false + 11 0x00018 bool 02 false + 12 0x00019 word 28 6f 72 or + 5 13 0x0001c int 91 f0 00 0xf0 + 14 0x0001f int 81 35 0x35 + 15 0x00021 word 28 6f 72 or + 6 16 0x00024 int 91 83 00 0x83 + 17 0x00027 bool 12 true + 18 0x00028 word 28 6f 72 or + 7 19 0x0002b bool 12 true + 20 0x0002c int 91 83 00 0x83 + 21 0x0002f word 28 6f 72 or diff --git a/tests/0031_or/code1.log.ref b/tests/0031_or/code1.log.ref new file mode 100644 index 0000000..f5f2820 --- /dev/null +++ b/tests/0031_or/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 28 6f 72 or + 2 4 0x0000d bool 12 true + 5 0x0000e bool 02 false + 6 0x0000f xref 54 or + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 xref 84 08 or + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 xref 84 0c or + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d xref 84 13 or + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 xref 84 19 or + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 xref 84 1f or diff --git a/tests/0031_or/code2.log.ref b/tests/0031_or/code2.log.ref new file mode 100644 index 0000000..0585b52 --- /dev/null +++ b/tests/0031_or/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 28 or + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 28 or + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 28 or + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 28 or + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 28 or + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 28 or + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 28 or diff --git a/tests/0031_or/main.gs b/tests/0031_or/main.gs new file mode 100644 index 0000000..53e07d9 --- /dev/null +++ b/tests/0031_or/main.gs @@ -0,0 +1,7 @@ +true true or +true false or +false true or +false false or +0xf0 0x35 or +0x83 true or +true 0x83 or diff --git a/tests/0031_or/mem.log.ref b/tests/0031_or/mem.log.ref new file mode 100644 index 0000000..3df8305 --- /dev/null +++ b/tests/0031_or/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 28 6f 72 12 02 28 uQ..Bz.`..(or..( + 6f 72 02 12 28 6f 72 02 02 28 6f 72 91 f0 00 81 or..(or..(or.... + 35 28 6f 72 91 83 00 12 28 6f 72 12 91 83 00 28 5(or....(or....( + 6f 72 or + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <245 (0xf5)> + [ 5] #207.1.1.num.int <131 (0x83)> + [ 6] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x32 (0x32) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <245 (0xf5)> + #207.1.1.num.int <131 (0x83)> + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/screen.log.ref b/tests/0031_or/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0031_or/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0031_or/trace.log.ref b/tests/0031_or/trace.log.ref new file mode 100644 index 0000000..d32b004 --- /dev/null +++ b/tests/0031_or/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x18, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x19, type 8, 26[2] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1c, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x21, type 8, 34[2] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <245 (0xf5)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x24, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <245 (0xf5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x27, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x28, type 8, 41[2] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <245 (0xf5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2b, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2c, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <131 (0x83)> + [3] #204.1.1.num.int <245 (0xf5)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2f, type 8, 48[2] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0032_xor/basic.log.ref b/tests/0032_xor/basic.log.ref new file mode 100644 index 0000000..543d93c --- /dev/null +++ b/tests/0032_xor/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <197 (0xc5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <197 (0xc5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <130 (0x82)> + [1] #xxxx.1.1.num.int <197 (0xc5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <130 (0x82)> + [3] #xxxx.1.1.num.int <197 (0xc5)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0032_xor/code.log.ref b/tests/0032_xor/code.log.ref new file mode 100644 index 0000000..96fc269 --- /dev/null +++ b/tests/0032_xor/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 78 6f 72 xor + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 word 38 78 6f 72 xor + 3 7 0x00014 bool 02 false + 8 0x00015 bool 12 true + 9 0x00016 word 38 78 6f 72 xor + 4 10 0x0001a bool 02 false + 11 0x0001b bool 02 false + 12 0x0001c word 38 78 6f 72 xor + 5 13 0x00020 int 91 f0 00 0xf0 + 14 0x00023 int 81 35 0x35 + 15 0x00025 word 38 78 6f 72 xor + 6 16 0x00029 int 91 83 00 0x83 + 17 0x0002c bool 12 true + 18 0x0002d word 38 78 6f 72 xor + 7 19 0x00031 bool 12 true + 20 0x00032 int 91 83 00 0x83 + 21 0x00035 word 38 78 6f 72 xor diff --git a/tests/0032_xor/code1.log.ref b/tests/0032_xor/code1.log.ref new file mode 100644 index 0000000..683b1a5 --- /dev/null +++ b/tests/0032_xor/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 78 6f 72 xor + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 xref 64 xor + 3 7 0x00011 bool 02 false + 8 0x00012 bool 12 true + 9 0x00013 xref 84 09 xor + 4 10 0x00015 bool 02 false + 11 0x00016 bool 02 false + 12 0x00017 xref 84 0d xor + 5 13 0x00019 int 91 f0 00 0xf0 + 14 0x0001c int 81 35 0x35 + 15 0x0001e xref 84 14 xor + 6 16 0x00020 int 91 83 00 0x83 + 17 0x00023 bool 12 true + 18 0x00024 xref 84 1a xor + 7 19 0x00026 bool 12 true + 20 0x00027 int 91 83 00 0x83 + 21 0x0002a xref 84 20 xor diff --git a/tests/0032_xor/code2.log.ref b/tests/0032_xor/code2.log.ref new file mode 100644 index 0000000..84a8b1c --- /dev/null +++ b/tests/0032_xor/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 29 xor + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 29 xor + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 29 xor + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 29 xor + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 29 xor + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 29 xor + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 29 xor diff --git a/tests/0032_xor/main.gs b/tests/0032_xor/main.gs new file mode 100644 index 0000000..48ccedd --- /dev/null +++ b/tests/0032_xor/main.gs @@ -0,0 +1,7 @@ +true true xor +true false xor +false true xor +false false xor +0xf0 0x35 xor +0x83 true xor +true 0x83 xor diff --git a/tests/0032_xor/mem.log.ref b/tests/0032_xor/mem.log.ref new file mode 100644 index 0000000..b76b7c4 --- /dev/null +++ b/tests/0032_xor/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 192.01, 0x001d6b40[ 72] + 11: 0.00, 0x001d6b90[14849136] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 38 78 6f 72 12 02 uQ..Bz.`..8xor.. + 38 78 6f 72 02 12 38 78 6f 72 02 02 38 78 6f 72 8xor..8xor..8xor + 91 f0 00 81 35 38 78 6f 72 91 83 00 12 38 78 6f ....58xor....8xo + 72 12 91 83 00 38 78 6f 72 r....8xor + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <197 (0xc5)> + [ 5] #207.1.1.num.int <130 (0x82)> + [ 6] #210.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <197 (0xc5)> + #207.1.1.num.int <130 (0x82)> + #210.1.1.num.bool <0 (0x0)> diff --git a/tests/0032_xor/screen.log.ref b/tests/0032_xor/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0032_xor/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0032_xor/trace.log.ref b/tests/0032_xor/trace.log.ref new file mode 100644 index 0000000..33aff9f --- /dev/null +++ b/tests/0032_xor/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1a, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1c, type 8, 29[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x20, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x23, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x25, type 8, 38[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <197 (0xc5)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x29, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <197 (0xc5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2c, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <130 (0x82)> + [1] #204.1.1.num.int <197 (0xc5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <130 (0x82)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x32, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <130 (0x82)> + [3] #204.1.1.num.int <197 (0xc5)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x35, type 8, 54[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.int <130 (0x82)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0033_min/basic.log.ref b/tests/0033_min/basic.log.ref new file mode 100644 index 0000000..01e16bc --- /dev/null +++ b/tests/0033_min/basic.log.ref @@ -0,0 +1,139 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0033_min/code.log.ref b/tests/0033_min/code.log.ref new file mode 100644 index 0000000..30af658 --- /dev/null +++ b/tests/0033_min/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 69 6e min + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 word 38 6d 69 6e min + 3 7 0x0001a bool 12 true + 8 0x0001b bool 02 false + 9 0x0001c word 38 6d 69 6e min + 4 10 0x00020 bool 02 false + 11 0x00021 bool 12 true + 12 0x00022 word 38 6d 69 6e min + 5 13 0x00026 bool 12 true + 14 0x00027 int 81 64 100 + 15 0x00029 word 38 6d 69 6e min + 6 16 0x0002d int 81 64 100 + 17 0x0002f bool 12 true + 18 0x00030 word 38 6d 69 6e min diff --git a/tests/0033_min/code1.log.ref b/tests/0033_min/code1.log.ref new file mode 100644 index 0000000..9c1142c --- /dev/null +++ b/tests/0033_min/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 69 6e min + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 xref 84 09 min + 3 7 0x00018 bool 12 true + 8 0x00019 bool 02 false + 9 0x0001a xref 84 0d min + 4 10 0x0001c bool 02 false + 11 0x0001d bool 12 true + 12 0x0001e xref 84 11 min + 5 13 0x00020 bool 12 true + 14 0x00021 int 81 64 100 + 15 0x00023 xref 84 16 min + 6 16 0x00025 int 81 64 100 + 17 0x00027 bool 12 true + 18 0x00028 xref 84 1b min diff --git a/tests/0033_min/code2.log.ref b/tests/0033_min/code2.log.ref new file mode 100644 index 0000000..848401d --- /dev/null +++ b/tests/0033_min/code2.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 25 min + 2 4 0x0000f int 91 c8 00 200 + 5 0x00012 int 81 64 100 + 6 0x00014 prim 83 25 min + 3 7 0x00016 bool 12 true + 8 0x00017 bool 02 false + 9 0x00018 prim 83 25 min + 4 10 0x0001a bool 02 false + 11 0x0001b bool 12 true + 12 0x0001c prim 83 25 min + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 64 100 + 15 0x00021 prim 83 25 min + 6 16 0x00023 int 81 64 100 + 17 0x00025 bool 12 true + 18 0x00026 prim 83 25 min diff --git a/tests/0033_min/main.gs b/tests/0033_min/main.gs new file mode 100644 index 0000000..b2c3e4a --- /dev/null +++ b/tests/0033_min/main.gs @@ -0,0 +1,6 @@ +100 200 min +200 100 min +true false min +false true min +true 100 min +100 true min diff --git a/tests/0033_min/mem.log.ref b/tests/0033_min/mem.log.ref new file mode 100644 index 0000000..581aca1 --- /dev/null +++ b/tests/0033_min/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 6d 69 uQ..Bz.`.d...8mi + 6e 91 c8 00 81 64 38 6d 69 6e 12 02 38 6d 69 6e n....d8min..8min + 02 12 38 6d 69 6e 12 81 64 38 6d 69 6e 81 64 12 ..8min..d8min.d. + 38 6d 69 6e 8min + #187.1.1.array + [ 0] #191.1.1.num.int <100 (0x64)> + [ 1] #195.1.1.num.int <100 (0x64)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.int <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x34) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <100 (0x64)> + #192.1.1.array + #195.1.1.num.int <100 (0x64)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.int <1 (0x1)> diff --git a/tests/0033_min/screen.log.ref b/tests/0033_min/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0033_min/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0033_min/trace.log.ref b/tests/0033_min/trace.log.ref new file mode 100644 index 0000000..8b2abfb --- /dev/null +++ b/tests/0033_min/trace.log.ref @@ -0,0 +1,158 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <100 (0x64)> +IP: #186:0x14, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <100 (0x64)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1c, type 8, 29[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x20, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x21, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <1 (0x1)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x26, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x27, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <100 (0x64)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> +IP: #186:0x29, type 8, 42[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x2d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> +IP: #186:0x2f, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.int <100 (0x64)> + [6] #191.1.1.num.int <100 (0x64)> +IP: #186:0x30, type 8, 49[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> diff --git a/tests/0034_max/basic.log.ref b/tests/0034_max/basic.log.ref new file mode 100644 index 0000000..7f11eaf --- /dev/null +++ b/tests/0034_max/basic.log.ref @@ -0,0 +1,139 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> diff --git a/tests/0034_max/code.log.ref b/tests/0034_max/code.log.ref new file mode 100644 index 0000000..12f5883 --- /dev/null +++ b/tests/0034_max/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 61 78 max + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 word 38 6d 61 78 max + 3 7 0x0001a bool 12 true + 8 0x0001b bool 02 false + 9 0x0001c word 38 6d 61 78 max + 4 10 0x00020 bool 02 false + 11 0x00021 bool 12 true + 12 0x00022 word 38 6d 61 78 max + 5 13 0x00026 bool 12 true + 14 0x00027 int 81 64 100 + 15 0x00029 word 38 6d 61 78 max + 6 16 0x0002d int 81 64 100 + 17 0x0002f bool 12 true + 18 0x00030 word 38 6d 61 78 max diff --git a/tests/0034_max/code1.log.ref b/tests/0034_max/code1.log.ref new file mode 100644 index 0000000..74adcaa --- /dev/null +++ b/tests/0034_max/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 61 78 max + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 xref 84 09 max + 3 7 0x00018 bool 12 true + 8 0x00019 bool 02 false + 9 0x0001a xref 84 0d max + 4 10 0x0001c bool 02 false + 11 0x0001d bool 12 true + 12 0x0001e xref 84 11 max + 5 13 0x00020 bool 12 true + 14 0x00021 int 81 64 100 + 15 0x00023 xref 84 16 max + 6 16 0x00025 int 81 64 100 + 17 0x00027 bool 12 true + 18 0x00028 xref 84 1b max diff --git a/tests/0034_max/code2.log.ref b/tests/0034_max/code2.log.ref new file mode 100644 index 0000000..3cc07a4 --- /dev/null +++ b/tests/0034_max/code2.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 26 max + 2 4 0x0000f int 91 c8 00 200 + 5 0x00012 int 81 64 100 + 6 0x00014 prim 83 26 max + 3 7 0x00016 bool 12 true + 8 0x00017 bool 02 false + 9 0x00018 prim 83 26 max + 4 10 0x0001a bool 02 false + 11 0x0001b bool 12 true + 12 0x0001c prim 83 26 max + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 64 100 + 15 0x00021 prim 83 26 max + 6 16 0x00023 int 81 64 100 + 17 0x00025 bool 12 true + 18 0x00026 prim 83 26 max diff --git a/tests/0034_max/main.gs b/tests/0034_max/main.gs new file mode 100644 index 0000000..6097c07 --- /dev/null +++ b/tests/0034_max/main.gs @@ -0,0 +1,6 @@ +100 200 max +200 100 max +true false max +false true max +true 100 max +100 true max diff --git a/tests/0034_max/mem.log.ref b/tests/0034_max/mem.log.ref new file mode 100644 index 0000000..a206d1f --- /dev/null +++ b/tests/0034_max/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 6d 61 uQ..Bz.`.d...8ma + 78 91 c8 00 81 64 38 6d 61 78 12 02 38 6d 61 78 x....d8max..8max + 02 12 38 6d 61 78 12 81 64 38 6d 61 78 81 64 12 ..8max..d8max.d. + 38 6d 61 78 8max + #187.1.1.array + [ 0] #191.1.1.num.int <200 (0xc8)> + [ 1] #195.1.1.num.int <200 (0xc8)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x34) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <200 (0xc8)> + #192.1.1.array + #195.1.1.num.int <200 (0xc8)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.int <100 (0x64)> diff --git a/tests/0034_max/screen.log.ref b/tests/0034_max/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0034_max/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0034_max/trace.log.ref b/tests/0034_max/trace.log.ref new file mode 100644 index 0000000..8243a45 --- /dev/null +++ b/tests/0034_max/trace.log.ref @@ -0,0 +1,158 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x11, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x14, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <100 (0x64)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1c, type 8, 29[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x20, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x21, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <1 (0x1)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x26, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x27, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <100 (0x64)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x29, type 8, 42[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x2d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x2f, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <200 (0xc8)> + [6] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x30, type 8, 49[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> diff --git a/tests/0035_neg/basic.log.ref b/tests/0035_neg/basic.log.ref new file mode 100644 index 0000000..d2a7563 --- /dev/null +++ b/tests/0035_neg/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0035_neg/code.log.ref b/tests/0035_neg/code.log.ref new file mode 100644 index 0000000..4b10667 --- /dev/null +++ b/tests/0035_neg/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 6e 65 67 neg + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 word 38 6e 65 67 neg + 3 5 0x00015 bool 02 false + 6 0x00016 word 38 6e 65 67 neg + 4 7 0x0001a bool 12 true + 8 0x0001b word 38 6e 65 67 neg diff --git a/tests/0035_neg/code1.log.ref b/tests/0035_neg/code1.log.ref new file mode 100644 index 0000000..6e126a4 --- /dev/null +++ b/tests/0035_neg/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 6e 65 67 neg + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 xref 74 neg + 3 5 0x00012 bool 02 false + 6 0x00013 xref 84 09 neg + 4 7 0x00015 bool 12 true + 8 0x00016 xref 84 0c neg diff --git a/tests/0035_neg/code2.log.ref b/tests/0035_neg/code2.log.ref new file mode 100644 index 0000000..e9c0392 --- /dev/null +++ b/tests/0035_neg/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a prim 83 23 neg + 2 3 0x0000c int 91 c8 00 200 + 4 0x0000f prim 83 23 neg + 3 5 0x00011 bool 02 false + 6 0x00012 prim 83 23 neg + 4 7 0x00014 bool 12 true + 8 0x00015 prim 83 23 neg diff --git a/tests/0035_neg/main.gs b/tests/0035_neg/main.gs new file mode 100644 index 0000000..3a1f552 --- /dev/null +++ b/tests/0035_neg/main.gs @@ -0,0 +1,4 @@ +-100 neg +200 neg +false neg +true neg diff --git a/tests/0035_neg/mem.log.ref b/tests/0035_neg/mem.log.ref new file mode 100644 index 0000000..fb52bb7 --- /dev/null +++ b/tests/0035_neg/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 9c 38 6e 65 67 91 c8 uQ..Bz.`..8neg.. + 00 38 6e 65 67 02 38 6e 65 67 12 38 6e 65 67 .8neg.8neg.8neg + #187.1.1.array + [ 0] #190.1.1.num.int <100 (0x64)> + [ 1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [ 2] #195.1.1.num.bool <0 (0x0)> + [ 3] #197.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <100 (0x64)> + #191.1.1.array + #193.1.1.num.int <-200 (0xffffffffffffff38)> + #195.1.1.num.bool <0 (0x0)> + #197.1.1.num.bool <1 (0x1)> diff --git a/tests/0035_neg/screen.log.ref b/tests/0035_neg/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0035_neg/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0035_neg/trace.log.ref b/tests/0035_neg/trace.log.ref new file mode 100644 index 0000000..aa7695e --- /dev/null +++ b/tests/0035_neg/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0xa, type 8, 11[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> +IP: #186:0xe, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x15, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 8, 28[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #190.1.1.num.int <100 (0x64)> diff --git a/tests/0036_not/basic.log.ref b/tests/0036_not/basic.log.ref new file mode 100644 index 0000000..363c9c0 --- /dev/null +++ b/tests/0036_not/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-512 (0xfffffffffffffe00)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <255 (0xff)> + [1] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <511 (0x1ff)> diff --git a/tests/0036_not/code.log.ref b/tests/0036_not/code.log.ref new file mode 100644 index 0000000..6477563 --- /dev/null +++ b/tests/0036_not/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b word 38 6e 6f 74 not + 2 3 0x0000f int 91 ff 00 0xff + 4 0x00012 word 38 6e 6f 74 not + 3 5 0x00016 bool 02 false + 6 0x00017 word 38 6e 6f 74 not + 4 7 0x0001b bool 12 true + 8 0x0001c word 38 6e 6f 74 not diff --git a/tests/0036_not/code1.log.ref b/tests/0036_not/code1.log.ref new file mode 100644 index 0000000..cde7f64 --- /dev/null +++ b/tests/0036_not/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b word 38 6e 6f 74 not + 2 3 0x0000f int 91 ff 00 0xff + 4 0x00012 xref 74 not + 3 5 0x00013 bool 02 false + 6 0x00014 xref 84 09 not + 4 7 0x00016 bool 12 true + 8 0x00017 xref 84 0c not diff --git a/tests/0036_not/code2.log.ref b/tests/0036_not/code2.log.ref new file mode 100644 index 0000000..8a8e50f --- /dev/null +++ b/tests/0036_not/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b prim 83 2a not + 2 3 0x0000d int 91 ff 00 0xff + 4 0x00010 prim 83 2a not + 3 5 0x00012 bool 02 false + 6 0x00013 prim 83 2a not + 4 7 0x00015 bool 12 true + 8 0x00016 prim 83 2a not diff --git a/tests/0036_not/main.gs b/tests/0036_not/main.gs new file mode 100644 index 0000000..8015cc2 --- /dev/null +++ b/tests/0036_not/main.gs @@ -0,0 +1,4 @@ +-0x200 not +0xff not +false not +true not diff --git a/tests/0036_not/mem.log.ref b/tests/0036_not/mem.log.ref new file mode 100644 index 0000000..2749a50 --- /dev/null +++ b/tests/0036_not/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 00 fe 38 6e 6f 74 91 uQ..Bz.`...8not. + ff 00 38 6e 6f 74 02 38 6e 6f 74 12 38 6e 6f 74 ..8not.8not.8not + #187.1.1.array + [ 0] #190.1.1.num.int <511 (0x1ff)> + [ 1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [ 2] #195.1.1.num.bool <1 (0x1)> + [ 3] #197.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x20 (0x20) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <511 (0x1ff)> + #191.1.1.array + #193.1.1.num.int <-256 (0xffffffffffffff00)> + #195.1.1.num.bool <1 (0x1)> + #197.1.1.num.bool <0 (0x0)> diff --git a/tests/0036_not/screen.log.ref b/tests/0036_not/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0036_not/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0036_not/trace.log.ref b/tests/0036_not/trace.log.ref new file mode 100644 index 0000000..593a982 --- /dev/null +++ b/tests/0036_not/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -512 (0xfffffffffffffe00) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-512 (0xfffffffffffffe00)> +IP: #186:0xb, type 8, 12[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0xf, type 1, 255 (0xff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <255 (0xff)> + [1] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x12, type 8, 19[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x16, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x17, type 8, 24[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x1b, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x1c, type 8, 29[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #190.1.1.num.int <511 (0x1ff)> diff --git a/tests/0037_abs/basic.log.ref b/tests/0037_abs/basic.log.ref new file mode 100644 index 0000000..371a386 --- /dev/null +++ b/tests/0037_abs/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0037_abs/code.log.ref b/tests/0037_abs/code.log.ref new file mode 100644 index 0000000..dae77b4 --- /dev/null +++ b/tests/0037_abs/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 61 62 73 abs + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 word 38 61 62 73 abs + 3 5 0x00015 bool 02 false + 6 0x00016 word 38 61 62 73 abs + 4 7 0x0001a bool 12 true + 8 0x0001b word 38 61 62 73 abs diff --git a/tests/0037_abs/code1.log.ref b/tests/0037_abs/code1.log.ref new file mode 100644 index 0000000..8805beb --- /dev/null +++ b/tests/0037_abs/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 61 62 73 abs + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 xref 74 abs + 3 5 0x00012 bool 02 false + 6 0x00013 xref 84 09 abs + 4 7 0x00015 bool 12 true + 8 0x00016 xref 84 0c abs diff --git a/tests/0037_abs/code2.log.ref b/tests/0037_abs/code2.log.ref new file mode 100644 index 0000000..06be99c --- /dev/null +++ b/tests/0037_abs/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a prim 83 24 abs + 2 3 0x0000c int 91 c8 00 200 + 4 0x0000f prim 83 24 abs + 3 5 0x00011 bool 02 false + 6 0x00012 prim 83 24 abs + 4 7 0x00014 bool 12 true + 8 0x00015 prim 83 24 abs diff --git a/tests/0037_abs/main.gs b/tests/0037_abs/main.gs new file mode 100644 index 0000000..9cb93c2 --- /dev/null +++ b/tests/0037_abs/main.gs @@ -0,0 +1,4 @@ +-100 abs +200 abs +false abs +true abs diff --git a/tests/0037_abs/mem.log.ref b/tests/0037_abs/mem.log.ref new file mode 100644 index 0000000..025942b --- /dev/null +++ b/tests/0037_abs/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 9c 38 61 62 73 91 c8 uQ..Bz.`..8abs.. + 00 38 61 62 73 02 38 61 62 73 12 38 61 62 73 .8abs.8abs.8abs + #187.1.1.array + [ 0] #190.1.1.num.int <100 (0x64)> + [ 1] #193.1.1.num.int <200 (0xc8)> + [ 2] #195.1.1.num.bool <0 (0x0)> + [ 3] #197.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <100 (0x64)> + #191.1.1.array + #193.1.1.num.int <200 (0xc8)> + #195.1.1.num.bool <0 (0x0)> + #197.1.1.num.bool <1 (0x1)> diff --git a/tests/0037_abs/screen.log.ref b/tests/0037_abs/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0037_abs/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0037_abs/trace.log.ref b/tests/0037_abs/trace.log.ref new file mode 100644 index 0000000..e98cc26 --- /dev/null +++ b/tests/0037_abs/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0xa, type 8, 11[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> +IP: #186:0xe, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x15, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 8, 28[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #190.1.1.num.int <100 (0x64)> diff --git a/tests/0038_shl/basic.log.ref b/tests/0038_shl/basic.log.ref new file mode 100644 index 0000000..8fd0734 --- /dev/null +++ b/tests/0038_shl/basic.log.ref @@ -0,0 +1,282 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> + [4] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> + [4] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> + [5] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> + [6] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> + [5] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> + [6] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> + [7] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> + [8] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> + [7] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> + [8] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> + [9] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> + [10] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> + [9] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> + [10] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> + [11] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [10] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> + [12] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> + [11] #xxxx.1.1.num.int <16 (0x10)> diff --git a/tests/0038_shl/code.log.ref b/tests/0038_shl/code.log.ref new file mode 100644 index 0000000..a3a4b1d --- /dev/null +++ b/tests/0038_shl/code.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b word 38 73 68 6c shl + 2 4 0x0000f int 81 10 0x10 + 5 0x00011 int 81 08 8 + 6 0x00013 word 38 73 68 6c shl + 3 7 0x00017 int 81 f0 -0x10 + 8 0x00019 int 81 08 8 + 9 0x0001b word 38 73 68 6c shl + 4 10 0x0001f int 11 1 + 11 0x00020 int 81 fe -2 + 12 0x00022 word 38 73 68 6c shl + 5 13 0x00026 int 81 3e 62 + 6 14 0x00028 int 11 1 + 15 0x00029 int 81 3e 62 + 16 0x0002b word 38 73 68 6c shl + 7 17 0x0002f int 81 3f 63 + 8 18 0x00031 int 11 1 + 19 0x00032 int 81 3f 63 + 20 0x00034 word 38 73 68 6c shl + 9 21 0x00038 int 81 40 64 + 10 22 0x0003a int 11 1 + 23 0x0003b int 81 40 64 + 24 0x0003d word 38 73 68 6c shl + 11 25 0x00041 int 81 41 65 + 12 26 0x00043 int 11 1 + 27 0x00044 int 81 41 65 + 28 0x00046 word 38 73 68 6c shl diff --git a/tests/0038_shl/code1.log.ref b/tests/0038_shl/code1.log.ref new file mode 100644 index 0000000..65a13c1 --- /dev/null +++ b/tests/0038_shl/code1.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b word 38 73 68 6c shl + 2 4 0x0000f int 81 10 0x10 + 5 0x00011 int 81 08 8 + 6 0x00013 xref 84 08 shl + 3 7 0x00015 int 81 f0 -0x10 + 8 0x00017 int 81 08 8 + 9 0x00019 xref 84 0e shl + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e xref 84 13 shl + 5 13 0x00020 int 81 3e 62 + 6 14 0x00022 int 11 1 + 15 0x00023 int 81 3e 62 + 16 0x00025 xref 84 1a shl + 7 17 0x00027 int 81 3f 63 + 8 18 0x00029 int 11 1 + 19 0x0002a int 81 3f 63 + 20 0x0002c xref 84 21 shl + 9 21 0x0002e int 81 40 64 + 10 22 0x00030 int 11 1 + 23 0x00031 int 81 40 64 + 24 0x00033 xref 84 28 shl + 11 25 0x00035 int 81 41 65 + 12 26 0x00037 int 11 1 + 27 0x00038 int 81 41 65 + 28 0x0003a xref 84 2f shl diff --git a/tests/0038_shl/code2.log.ref b/tests/0038_shl/code2.log.ref new file mode 100644 index 0000000..48699e1 --- /dev/null +++ b/tests/0038_shl/code2.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b prim 83 2b shl + 2 4 0x0000d int 81 10 0x10 + 5 0x0000f int 81 08 8 + 6 0x00011 prim 83 2b shl + 3 7 0x00013 int 81 f0 -0x10 + 8 0x00015 int 81 08 8 + 9 0x00017 prim 83 2b shl + 4 10 0x00019 int 11 1 + 11 0x0001a int 81 fe -2 + 12 0x0001c prim 83 2b shl + 5 13 0x0001e int 81 3e 62 + 6 14 0x00020 int 11 1 + 15 0x00021 int 81 3e 62 + 16 0x00023 prim 83 2b shl + 7 17 0x00025 int 81 3f 63 + 8 18 0x00027 int 11 1 + 19 0x00028 int 81 3f 63 + 20 0x0002a prim 83 2b shl + 9 21 0x0002c int 81 40 64 + 10 22 0x0002e int 11 1 + 23 0x0002f int 81 40 64 + 24 0x00031 prim 83 2b shl + 11 25 0x00033 int 81 41 65 + 12 26 0x00035 int 11 1 + 27 0x00036 int 81 41 65 + 28 0x00038 prim 83 2b shl diff --git a/tests/0038_shl/main.gs b/tests/0038_shl/main.gs new file mode 100644 index 0000000..a10496c --- /dev/null +++ b/tests/0038_shl/main.gs @@ -0,0 +1,12 @@ +0x10 0 shl +0x10 8 shl +-0x10 8 shl +1 -2 shl +62 +1 62 shl +63 +1 63 shl +64 +1 64 shl +65 +1 65 shl diff --git a/tests/0038_shl/mem.log.ref b/tests/0038_shl/mem.log.ref new file mode 100644 index 0000000..5c9b4cc --- /dev/null +++ b/tests/0038_shl/mem.log.ref @@ -0,0 +1,779 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 192.01, 0x001d6b50[ 72] + 11: 0.00, 0x001d6ba0[14849120] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 10 01 38 73 68 6c 81 uQ..Bz.`...8shl. + 10 81 08 38 73 68 6c 81 f0 81 08 38 73 68 6c 11 ...8shl....8shl. + 81 fe 38 73 68 6c 81 3e 11 81 3e 38 73 68 6c 81 ..8shl.>..>8shl. + 3f 11 81 3f 38 73 68 6c 81 40 11 81 40 38 73 68 ?..?8shl.@..@8sh + 6c 81 41 11 81 41 38 73 68 6c l.A..A8shl + #187.1.1.array + [ 0] #191.1.1.num.int <16 (0x10)> + [ 1] #195.1.1.num.int <4096 (0x1000)> + [ 2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [ 3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [ 4] #202.1.1.num.int <62 (0x3e)> + [ 5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [ 6] #206.1.1.num.int <63 (0x3f)> + [ 7] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [ 8] #210.1.1.num.int <64 (0x40)> + [ 9] #213.1.1.num.int <1 (0x1)> + [10] #214.1.1.num.int <65 (0x41)> + [11] #217.1.1.num.int <2 (0x2)> + #188.1.1.ctx.func + type 17, ip 0x4a (0x4a) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <16 (0x10)> + #192.1.1.array + #195.1.1.num.int <4096 (0x1000)> + #198.1.1.num.int <-4096 (0xfffffffffffff000)> + #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + #202.1.1.num.int <62 (0x3e)> + #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + #206.1.1.num.int <63 (0x3f)> + #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #210.1.1.num.int <64 (0x40)> + #213.1.1.num.int <1 (0x1)> + #214.1.1.num.int <65 (0x41)> + #217.1.1.num.int <2 (0x2)> diff --git a/tests/0038_shl/screen.log.ref b/tests/0038_shl/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0038_shl/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0038_shl/trace.log.ref b/tests/0038_shl/trace.log.ref new file mode 100644 index 0000000..35855ff --- /dev/null +++ b/tests/0038_shl/trace.log.ref @@ -0,0 +1,311 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <16 (0x10)> +IP: #186:0xa, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <0 (0x0)> + [1] #189.1.1.num.int <16 (0x10)> +IP: #186:0xb, type 8, 12[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <16 (0x10)> +IP: #186:0xf, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <16 (0x10)> + [1] #191.1.1.num.int <16 (0x10)> +IP: #186:0x11, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <8 (0x8)> + [1] #193.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x13, type 8, 20[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <4096 (0x1000)> + [1] #191.1.1.num.int <16 (0x10)> +IP: #186:0x17, type 1, -16 (0xfffffffffffffff0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #195.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x19, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <8 (0x8)> + [1] #196.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #195.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x1f, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x20, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #195.1.1.num.int <4096 (0x1000)> + [4] #191.1.1.num.int <16 (0x10)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x26, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <62 (0x3e)> + [1] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #195.1.1.num.int <4096 (0x1000)> + [4] #191.1.1.num.int <16 (0x10)> +IP: #186:0x28, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <1 (0x1)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #195.1.1.num.int <4096 (0x1000)> + [5] #191.1.1.num.int <16 (0x10)> +IP: #186:0x29, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <62 (0x3e)> + [1] #203.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #195.1.1.num.int <4096 (0x1000)> + [6] #191.1.1.num.int <16 (0x10)> +IP: #186:0x2b, type 8, 44[3] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #195.1.1.num.int <4096 (0x1000)> + [5] #191.1.1.num.int <16 (0x10)> +IP: #186:0x2f, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <63 (0x3f)> + [1] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #195.1.1.num.int <4096 (0x1000)> + [6] #191.1.1.num.int <16 (0x10)> +IP: #186:0x31, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #206.1.1.num.int <63 (0x3f)> + [2] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #195.1.1.num.int <4096 (0x1000)> + [7] #191.1.1.num.int <16 (0x10)> +IP: #186:0x32, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <63 (0x3f)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #206.1.1.num.int <63 (0x3f)> + [3] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #195.1.1.num.int <4096 (0x1000)> + [8] #191.1.1.num.int <16 (0x10)> +IP: #186:0x34, type 8, 53[3] +GC: --#208.1.1.num.int +GC: --#207.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #206.1.1.num.int <63 (0x3f)> + [2] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #195.1.1.num.int <4096 (0x1000)> + [7] #191.1.1.num.int <16 (0x10)> +IP: #186:0x38, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <64 (0x40)> + [1] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #206.1.1.num.int <63 (0x3f)> + [3] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #195.1.1.num.int <4096 (0x1000)> + [8] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3a, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <64 (0x40)> + [2] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #206.1.1.num.int <63 (0x3f)> + [4] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #195.1.1.num.int <4096 (0x1000)> + [9] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3b, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <64 (0x40)> + [1] #211.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <64 (0x40)> + [3] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #206.1.1.num.int <63 (0x3f)> + [5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #195.1.1.num.int <4096 (0x1000)> + [10] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3d, type 8, 62[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <64 (0x40)> + [2] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #206.1.1.num.int <63 (0x3f)> + [4] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #195.1.1.num.int <4096 (0x1000)> + [9] #191.1.1.num.int <16 (0x10)> +IP: #186:0x41, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <65 (0x41)> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <64 (0x40)> + [3] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #206.1.1.num.int <63 (0x3f)> + [5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #195.1.1.num.int <4096 (0x1000)> + [10] #191.1.1.num.int <16 (0x10)> +IP: #186:0x43, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <1 (0x1)> + [1] #214.1.1.num.int <65 (0x41)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <64 (0x40)> + [4] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #206.1.1.num.int <63 (0x3f)> + [6] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #195.1.1.num.int <4096 (0x1000)> + [11] #191.1.1.num.int <16 (0x10)> +IP: #186:0x44, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <65 (0x41)> + [1] #215.1.1.num.int <1 (0x1)> + [2] #214.1.1.num.int <65 (0x41)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <64 (0x40)> + [5] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #206.1.1.num.int <63 (0x3f)> + [7] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [10] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [11] #195.1.1.num.int <4096 (0x1000)> + [12] #191.1.1.num.int <16 (0x10)> +IP: #186:0x46, type 8, 71[3] +GC: --#216.1.1.num.int +GC: --#215.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <2 (0x2)> + [1] #214.1.1.num.int <65 (0x41)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <64 (0x40)> + [4] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #206.1.1.num.int <63 (0x3f)> + [6] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #195.1.1.num.int <4096 (0x1000)> + [11] #191.1.1.num.int <16 (0x10)> diff --git a/tests/0039_shr/basic.log.ref b/tests/0039_shr/basic.log.ref new file mode 100644 index 0000000..11192c5 --- /dev/null +++ b/tests/0039_shr/basic.log.ref @@ -0,0 +1,492 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <62 (0x3e)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <62 (0x3e)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <63 (0x3f)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <62 (0x3e)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <63 (0x3f)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <62 (0x3e)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [6] #xxxx.1.1.num.int <64 (0x40)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <63 (0x3f)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <62 (0x3e)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> diff --git a/tests/0039_shr/code.log.ref b/tests/0039_shr/code.log.ref new file mode 100644 index 0000000..da80718 --- /dev/null +++ b/tests/0039_shr/code.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c word 38 73 68 72 shr + 2 4 0x00010 int 91 00 10 0x1000 + 5 0x00013 int 81 08 8 + 6 0x00015 word 38 73 68 72 shr + 3 7 0x00019 int 91 00 f0 -0x1000 + 8 0x0001c int 81 08 8 + 9 0x0001e word 38 73 68 72 shr + 4 10 0x00022 int 91 00 10 0x1000 + 11 0x00025 int 81 c4 -60 + 12 0x00027 word 38 73 68 72 shr + 5 13 0x0002b int 81 3e 62 + 6 14 0x0002d int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x00036 int 81 3e 62 + 16 0x00038 word 38 73 68 72 shr + 7 17 0x0003c int 81 ff 0xffffffffffffffff + 18 0x0003e int 81 3e 62 + 19 0x00040 word 38 73 68 72 shr + 8 20 0x00044 int 81 3f 63 + 9 21 0x00046 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x0004f int 81 3f 63 + 23 0x00051 word 38 73 68 72 shr + 10 24 0x00055 int 81 ff 0xffffffffffffffff + 25 0x00057 int 81 3f 63 + 26 0x00059 word 38 73 68 72 shr + 11 27 0x0005d int 81 40 64 + 12 28 0x0005f int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x00068 int 81 40 64 + 30 0x0006a word 38 73 68 72 shr + 13 31 0x0006e int 81 ff 0xffffffffffffffff + 32 0x00070 int 81 40 64 + 33 0x00072 word 38 73 68 72 shr + 14 34 0x00076 int 81 41 65 + 15 35 0x00078 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x00081 int 81 41 65 + 37 0x00083 word 38 73 68 72 shr + 16 38 0x00087 int 81 ff 0xffffffffffffffff + 39 0x00089 int 81 41 65 + 40 0x0008b word 38 73 68 72 shr diff --git a/tests/0039_shr/code1.log.ref b/tests/0039_shr/code1.log.ref new file mode 100644 index 0000000..d36eac3 --- /dev/null +++ b/tests/0039_shr/code1.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c word 38 73 68 72 shr + 2 4 0x00010 int 91 00 10 0x1000 + 5 0x00013 int 81 08 8 + 6 0x00015 xref 84 09 shr + 3 7 0x00017 int 91 00 f0 -0x1000 + 8 0x0001a int 81 08 8 + 9 0x0001c xref 84 10 shr + 4 10 0x0001e int 91 00 10 0x1000 + 11 0x00021 int 81 c4 -60 + 12 0x00023 xref 84 17 shr + 5 13 0x00025 int 81 3e 62 + 6 14 0x00027 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x00030 int 81 3e 62 + 16 0x00032 xref 84 26 shr + 7 17 0x00034 int 81 ff 0xffffffffffffffff + 18 0x00036 int 81 3e 62 + 19 0x00038 xref 84 2c shr + 8 20 0x0003a int 81 3f 63 + 9 21 0x0003c int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x00045 int 81 3f 63 + 23 0x00047 xref 84 3b shr + 10 24 0x00049 int 81 ff 0xffffffffffffffff + 25 0x0004b int 81 3f 63 + 26 0x0004d xref 84 41 shr + 11 27 0x0004f int 81 40 64 + 12 28 0x00051 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x0005a int 81 40 64 + 30 0x0005c xref 84 50 shr + 13 31 0x0005e int 81 ff 0xffffffffffffffff + 32 0x00060 int 81 40 64 + 33 0x00062 xref 84 56 shr + 14 34 0x00064 int 81 41 65 + 15 35 0x00066 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x0006f int 81 41 65 + 37 0x00071 xref 84 65 shr + 16 38 0x00073 int 81 ff 0xffffffffffffffff + 39 0x00075 int 81 41 65 + 40 0x00077 xref 84 6b shr diff --git a/tests/0039_shr/code2.log.ref b/tests/0039_shr/code2.log.ref new file mode 100644 index 0000000..b171f61 --- /dev/null +++ b/tests/0039_shr/code2.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c prim 83 2c shr + 2 4 0x0000e int 91 00 10 0x1000 + 5 0x00011 int 81 08 8 + 6 0x00013 prim 83 2c shr + 3 7 0x00015 int 91 00 f0 -0x1000 + 8 0x00018 int 81 08 8 + 9 0x0001a prim 83 2c shr + 4 10 0x0001c int 91 00 10 0x1000 + 11 0x0001f int 81 c4 -60 + 12 0x00021 prim 83 2c shr + 5 13 0x00023 int 81 3e 62 + 6 14 0x00025 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x0002e int 81 3e 62 + 16 0x00030 prim 83 2c shr + 7 17 0x00032 int 81 ff 0xffffffffffffffff + 18 0x00034 int 81 3e 62 + 19 0x00036 prim 83 2c shr + 8 20 0x00038 int 81 3f 63 + 9 21 0x0003a int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x00043 int 81 3f 63 + 23 0x00045 prim 83 2c shr + 10 24 0x00047 int 81 ff 0xffffffffffffffff + 25 0x00049 int 81 3f 63 + 26 0x0004b prim 83 2c shr + 11 27 0x0004d int 81 40 64 + 12 28 0x0004f int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x00058 int 81 40 64 + 30 0x0005a prim 83 2c shr + 13 31 0x0005c int 81 ff 0xffffffffffffffff + 32 0x0005e int 81 40 64 + 33 0x00060 prim 83 2c shr + 14 34 0x00062 int 81 41 65 + 15 35 0x00064 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x0006d int 81 41 65 + 37 0x0006f prim 83 2c shr + 16 38 0x00071 int 81 ff 0xffffffffffffffff + 39 0x00073 int 81 41 65 + 40 0x00075 prim 83 2c shr diff --git a/tests/0039_shr/main.gs b/tests/0039_shr/main.gs new file mode 100644 index 0000000..ddd31fd --- /dev/null +++ b/tests/0039_shr/main.gs @@ -0,0 +1,16 @@ +0x1000 0 shr +0x1000 8 shr +-0x1000 8 shr +0x1000 -60 shr +62 +0x7fffffffffffffff 62 shr +0xffffffffffffffff 62 shr +63 +0x7fffffffffffffff 63 shr +0xffffffffffffffff 63 shr +64 +0x7fffffffffffffff 64 shr +0xffffffffffffffff 64 shr +65 +0x7fffffffffffffff 65 shr +0xffffffffffffffff 65 shr diff --git a/tests/0039_shr/mem.log.ref b/tests/0039_shr/mem.log.ref new file mode 100644 index 0000000..45a274c --- /dev/null +++ b/tests/0039_shr/mem.log.ref @@ -0,0 +1,792 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 144] + 8: 0.00, 0x001d6b04[ 72] + 9: 188.01, 0x001d6b54[ 56] + 10: 192.01, 0x001d6b94[ 72] + 11: 187.01, 0x001d6be4[ 144] + 12: 0.00, 0x001d6c7c[14848900] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 00 10 01 38 73 68 72 uQ..Bz.`....8shr + 91 00 10 81 08 38 73 68 72 91 00 f0 81 08 38 73 .....8shr.....8s + 68 72 91 00 10 81 c4 38 73 68 72 81 3e f1 ff ff hr.....8shr.>... + ff ff ff ff ff 7f 81 3e 38 73 68 72 81 ff 81 3e .......>8shr...> + 38 73 68 72 81 3f f1 ff ff ff ff ff ff ff 7f 81 8shr.?.......... + 3f 38 73 68 72 81 ff 81 3f 38 73 68 72 81 40 f1 ?8shr...?8shr.@. + ff ff ff ff ff ff ff 7f 81 40 38 73 68 72 81 ff .........@8shr.. + 81 40 38 73 68 72 81 41 f1 ff ff ff ff ff ff ff .@8shr.A........ + 7f 81 41 38 73 68 72 81 ff 81 41 38 73 68 72 ..A8shr...A8shr + #187.1.1.array + [ 0] #191.1.1.num.int <4096 (0x1000)> + [ 1] #195.1.1.num.int <16 (0x10)> + [ 2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [ 3] #201.1.1.num.int <256 (0x100)> + [ 4] #202.1.1.num.int <62 (0x3e)> + [ 5] #205.1.1.num.int <1 (0x1)> + [ 6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [ 7] #209.1.1.num.int <63 (0x3f)> + [ 8] #212.1.1.num.int <0 (0x0)> + [ 9] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <64 (0x40)> + [11] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [12] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #223.1.1.num.int <65 (0x41)> + [14] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [15] #229.1.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x8f (0x8f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <4096 (0x1000)> + #192.1.1.array + #195.1.1.num.int <16 (0x10)> + #198.1.1.num.int <-16 (0xfffffffffffffff0)> + #201.1.1.num.int <256 (0x100)> + #202.1.1.num.int <62 (0x3e)> + #205.1.1.num.int <1 (0x1)> + #208.1.1.num.int <-1 (0xffffffffffffffff)> + #209.1.1.num.int <63 (0x3f)> + #212.1.1.num.int <0 (0x0)> + #215.1.1.num.int <-1 (0xffffffffffffffff)> + #216.1.1.num.int <64 (0x40)> + #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + #222.1.1.num.int <-1 (0xffffffffffffffff)> + #223.1.1.num.int <65 (0x41)> + #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + #229.1.1.num.int <-1 (0xffffffffffffffff)> diff --git a/tests/0039_shr/screen.log.ref b/tests/0039_shr/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0039_shr/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0039_shr/trace.log.ref b/tests/0039_shr/trace.log.ref new file mode 100644 index 0000000..50e37f2 --- /dev/null +++ b/tests/0039_shr/trace.log.ref @@ -0,0 +1,533 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <4096 (0x1000)> +IP: #186:0xb, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <0 (0x0)> + [1] #189.1.1.num.int <4096 (0x1000)> +IP: #186:0xc, type 8, 13[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x10, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4096 (0x1000)> + [1] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x13, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <8 (0x8)> + [1] #193.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x15, type 8, 22[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <16 (0x10)> + [1] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x19, type 1, -4096 (0xfffffffffffff000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #195.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x1c, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <8 (0x8)> + [1] #196.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x1e, type 8, 31[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #195.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x22, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <4096 (0x1000)> + [1] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x25, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-60 (0xffffffffffffffc4)> + [1] #199.1.1.num.int <4096 (0x1000)> + [2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #195.1.1.num.int <16 (0x10)> + [4] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x27, type 8, 40[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <256 (0x100)> + [1] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x2b, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <62 (0x3e)> + [1] #201.1.1.num.int <256 (0x100)> + [2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #195.1.1.num.int <16 (0x10)> + [4] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x2d, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <256 (0x100)> + [3] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #195.1.1.num.int <16 (0x10)> + [5] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x36, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <62 (0x3e)> + [1] #203.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x38, type 8, 57[3] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <1 (0x1)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <256 (0x100)> + [3] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #195.1.1.num.int <16 (0x10)> + [5] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x3c, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x3e, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <62 (0x3e)> + [1] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <1 (0x1)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <256 (0x100)> + [5] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #195.1.1.num.int <16 (0x10)> + [7] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x40, type 8, 65[3] +GC: --#207.1.1.num.int +GC: --#206.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x44, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <63 (0x3f)> + [1] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <1 (0x1)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <256 (0x100)> + [5] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #195.1.1.num.int <16 (0x10)> + [7] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x46, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #209.1.1.num.int <63 (0x3f)> + [2] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <1 (0x1)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <256 (0x100)> + [6] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #195.1.1.num.int <16 (0x10)> + [8] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x4f, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <63 (0x3f)> + [1] #210.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x51, type 8, 82[3] +GC: --#211.1.1.num.int +GC: --#210.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <0 (0x0)> + [1] #209.1.1.num.int <63 (0x3f)> + [2] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <1 (0x1)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <256 (0x100)> + [6] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #195.1.1.num.int <16 (0x10)> + [8] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x55, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x57, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <63 (0x3f)> + [1] #213.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #209.1.1.num.int <63 (0x3f)> + [4] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <1 (0x1)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <256 (0x100)> + [8] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #195.1.1.num.int <16 (0x10)> + [10] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x59, type 8, 90[3] +GC: --#214.1.1.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x5d, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <64 (0x40)> + [1] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #209.1.1.num.int <63 (0x3f)> + [4] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <1 (0x1)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <256 (0x100)> + [8] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #195.1.1.num.int <16 (0x10)> + [10] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x5f, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #216.1.1.num.int <64 (0x40)> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #209.1.1.num.int <63 (0x3f)> + [5] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <1 (0x1)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <256 (0x100)> + [9] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #195.1.1.num.int <16 (0x10)> + [11] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x68, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <64 (0x40)> + [1] #217.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x6a, type 8, 107[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #216.1.1.num.int <64 (0x40)> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #209.1.1.num.int <63 (0x3f)> + [5] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <1 (0x1)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <256 (0x100)> + [9] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #195.1.1.num.int <16 (0x10)> + [11] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x6e, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x70, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <64 (0x40)> + [1] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #216.1.1.num.int <64 (0x40)> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #209.1.1.num.int <63 (0x3f)> + [7] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <1 (0x1)> + [9] #202.1.1.num.int <62 (0x3e)> + [10] #201.1.1.num.int <256 (0x100)> + [11] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #195.1.1.num.int <16 (0x10)> + [13] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x72, type 8, 115[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x76, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <65 (0x41)> + [1] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #216.1.1.num.int <64 (0x40)> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #209.1.1.num.int <63 (0x3f)> + [7] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <1 (0x1)> + [9] #202.1.1.num.int <62 (0x3e)> + [10] #201.1.1.num.int <256 (0x100)> + [11] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #195.1.1.num.int <16 (0x10)> + [13] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x78, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #223.1.1.num.int <65 (0x41)> + [2] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #216.1.1.num.int <64 (0x40)> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #209.1.1.num.int <63 (0x3f)> + [8] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <1 (0x1)> + [10] #202.1.1.num.int <62 (0x3e)> + [11] #201.1.1.num.int <256 (0x100)> + [12] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #195.1.1.num.int <16 (0x10)> + [14] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x81, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <65 (0x41)> + [1] #224.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x83, type 8, 132[3] +GC: --#225.1.1.num.int +GC: --#224.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [1] #223.1.1.num.int <65 (0x41)> + [2] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #216.1.1.num.int <64 (0x40)> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #209.1.1.num.int <63 (0x3f)> + [8] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <1 (0x1)> + [10] #202.1.1.num.int <62 (0x3e)> + [11] #201.1.1.num.int <256 (0x100)> + [12] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #195.1.1.num.int <16 (0x10)> + [14] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x87, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x89, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <65 (0x41)> + [1] #227.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [3] #223.1.1.num.int <65 (0x41)> + [4] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [6] #216.1.1.num.int <64 (0x40)> + [7] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #212.1.1.num.int <0 (0x0)> + [9] #209.1.1.num.int <63 (0x3f)> + [10] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #205.1.1.num.int <1 (0x1)> + [12] #202.1.1.num.int <62 (0x3e)> + [13] #201.1.1.num.int <256 (0x100)> + [14] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [15] #195.1.1.num.int <16 (0x10)> + [16] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x8b, type 8, 140[3] +GC: --#228.1.1.num.int +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> diff --git a/tests/0040_cmp/basic.log.ref b/tests/0040_cmp/basic.log.ref new file mode 100644 index 0000000..c400342 --- /dev/null +++ b/tests/0040_cmp/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> diff --git a/tests/0040_cmp/code.log.ref b/tests/0040_cmp/code.log.ref new file mode 100644 index 0000000..b40fdfa --- /dev/null +++ b/tests/0040_cmp/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 38 63 6d 70 cmp + 2 4 0x0000e int 51 5 + 5 0x0000f int 61 6 + 6 0x00010 word 38 63 6d 70 cmp + 3 7 0x00014 int 61 6 + 8 0x00015 int 51 5 + 9 0x00016 word 38 63 6d 70 cmp + 4 10 0x0001a str 37 61 62 63 "abc" + 11 0x0001e str 37 61 62 63 "abc" + 12 0x00022 word 38 63 6d 70 cmp + 5 13 0x00026 str 37 61 62 63 "abc" + 14 0x0002a str 37 61 62 64 "abd" + 15 0x0002e word 38 63 6d 70 cmp + 6 16 0x00032 str 37 61 62 63 "abc" + 17 0x00036 str 47 61 62 63 31 "abc1" + 18 0x0003b word 38 63 6d 70 cmp + 7 19 0x0003f str 37 61 62 64 "abd" + 20 0x00043 str 37 61 62 63 "abc" + 21 0x00047 word 38 63 6d 70 cmp + 8 22 0x0004b str 47 61 62 63 31 "abc1" + 23 0x00050 str 37 61 62 63 "abc" + 24 0x00054 word 38 63 6d 70 cmp + 9 25 0x00058 str 07 "" + 26 0x00059 str 07 "" + 27 0x0005a word 38 63 6d 70 cmp + 10 28 0x0005e str 07 "" + 29 0x0005f str 17 61 "a" + 30 0x00061 word 38 63 6d 70 cmp + 11 31 0x00065 str 17 61 "a" + 32 0x00067 str 07 "" + 33 0x00068 word 38 63 6d 70 cmp + 12 34 0x0006c ref 39 66 6f 6f /foo + 35 0x00070 str 37 66 6f 6f "foo" + 36 0x00074 word 38 63 6d 70 cmp + 13 37 0x00078 nil 00 nil + 38 0x00079 nil 00 nil + 39 0x0007a word 38 63 6d 70 cmp + 14 40 0x0007e nil 00 nil + 41 0x0007f int 31 3 + 42 0x00080 word 38 63 6d 70 cmp + 15 43 0x00084 int 51 5 + 44 0x00085 str 37 61 62 63 "abc" + 45 0x00089 word 38 63 6d 70 cmp + 16 46 0x0008d code 36 { + 47 0x0008e int 81 0a 10 + 48 0x00090 prim 13 } + 49 0x00091 code 36 { + 50 0x00092 int 81 0a 10 + 51 0x00094 prim 13 } + 52 0x00095 word 38 63 6d 70 cmp + 17 53 0x00099 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0009f word 18 5b [ + 55 0x000a1 int 11 1 + 56 0x000a2 int 21 2 + 57 0x000a3 int 31 3 + 58 0x000a4 word 18 5d ] + 59 0x000a6 word 38 64 65 66 def + 18 60 0x000aa ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000b0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000b6 word 38 64 65 66 def + 19 63 0x000ba word 58 66 6f 6f 5f 31 foo_1 + 64 0x000c0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000c6 word 38 63 6d 70 cmp + 20 66 0x000ca word 18 5b [ + 67 0x000cc int 61 6 + 68 0x000cd word 18 5d ] + 69 0x000cf word 18 5b [ + 70 0x000d1 int 61 6 + 71 0x000d2 word 18 5d ] + 72 0x000d4 word 38 63 6d 70 cmp diff --git a/tests/0040_cmp/code1.log.ref b/tests/0040_cmp/code1.log.ref new file mode 100644 index 0000000..180785f --- /dev/null +++ b/tests/0040_cmp/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 38 63 6d 70 cmp + 2 4 0x0000e int 51 5 + 5 0x0000f int 61 6 + 6 0x00010 xref 64 cmp + 3 7 0x00011 int 61 6 + 8 0x00012 int 51 5 + 9 0x00013 xref 84 09 cmp + 4 10 0x00015 str 37 61 62 63 "abc" + 11 0x00019 xref 44 "abc" + 12 0x0001a xref 84 10 cmp + 5 13 0x0001c xref 74 "abc" + 14 0x0001d str 37 61 62 64 "abd" + 15 0x00021 xref 84 17 cmp + 6 16 0x00023 xref 84 0e "abc" + 17 0x00025 str 47 61 62 63 31 "abc1" + 18 0x0002a xref 84 20 cmp + 7 19 0x0002c xref 84 0f "abd" + 20 0x0002e xref 84 19 "abc" + 21 0x00030 xref 84 26 cmp + 8 22 0x00032 xref 84 0d "abc1" + 23 0x00034 xref 84 1f "abc" + 24 0x00036 xref 84 2c cmp + 9 25 0x00038 str 07 "" + 26 0x00039 str 07 "" + 27 0x0003a xref 84 30 cmp + 10 28 0x0003c str 07 "" + 29 0x0003d str 17 61 "a" + 30 0x0003f xref 84 35 cmp + 11 31 0x00041 xref 44 "a" + 32 0x00042 str 07 "" + 33 0x00043 xref 84 39 cmp + 12 34 0x00045 ref 39 66 6f 6f /foo + 35 0x00049 str 37 66 6f 6f "foo" + 36 0x0004d xref 84 43 cmp + 13 37 0x0004f nil 00 nil + 38 0x00050 nil 00 nil + 39 0x00051 xref 84 47 cmp + 14 40 0x00053 nil 00 nil + 41 0x00054 int 31 3 + 42 0x00055 xref 84 4b cmp + 15 43 0x00057 int 51 5 + 44 0x00058 xref 84 43 "abc" + 45 0x0005a xref 84 50 cmp + 16 46 0x0005c code 36 { + 47 0x0005d int 81 0a 10 + 48 0x0005f prim 13 } + 49 0x00060 code 36 { + 50 0x00061 int 81 0a 10 + 51 0x00063 prim 13 } + 52 0x00064 xref 84 5a cmp + 17 53 0x00066 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006c word 18 5b [ + 55 0x0006e int 11 1 + 56 0x0006f int 21 2 + 57 0x00070 int 31 3 + 58 0x00071 word 18 5d ] + 59 0x00073 word 38 64 65 66 def + 18 60 0x00077 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007d word 58 66 6f 6f 5f 31 foo_1 + 62 0x00083 xref 84 10 def + 19 63 0x00085 xref 84 08 foo_1 + 64 0x00087 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008d xref 84 83 cmp + 20 66 0x0008f word 18 5b [ + 67 0x00091 int 61 6 + 68 0x00092 word 18 5d ] + 69 0x00094 word 18 5b [ + 70 0x00096 int 61 6 + 71 0x00097 word 18 5d ] + 72 0x00099 xref 84 8f cmp diff --git a/tests/0040_cmp/code2.log.ref b/tests/0040_cmp/code2.log.ref new file mode 100644 index 0000000..5914e28 --- /dev/null +++ b/tests/0040_cmp/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 33 cmp + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 33 cmp + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 33 cmp + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 33 cmp + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 33 cmp + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 33 cmp + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 33 cmp + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 33 cmp + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 33 cmp + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 33 cmp + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 33 cmp + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 33 cmp + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 33 cmp + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 33 cmp + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 33 cmp + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 33 cmp + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 33 cmp + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 33 cmp diff --git a/tests/0040_cmp/main.gs b/tests/0040_cmp/main.gs new file mode 100644 index 0000000..6738cb4 --- /dev/null +++ b/tests/0040_cmp/main.gs @@ -0,0 +1,20 @@ +5 5 cmp +5 6 cmp +6 5 cmp +"abc" "abc" cmp +"abc" "abd" cmp +"abc" "abc1" cmp +"abd" "abc" cmp +"abc1" "abc" cmp +"" "" cmp +"" "a" cmp +"a" "" cmp +/foo "foo" cmp +nil nil cmp +nil 3 cmp +5 "abc" cmp +{ 10 } { 10 } cmp +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 cmp +[ 6 ] [ 6 ] cmp diff --git a/tests/0040_cmp/mem.log.ref b/tests/0040_cmp/mem.log.ref new file mode 100644 index 0000000..81b02fc --- /dev/null +++ b/tests/0040_cmp/mem.log.ref @@ -0,0 +1,815 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 216] + 8: 239.01, 0x001d6b4c[ 20] + 9: 0.00, 0x001d6b68[ 44] + 10: 188.01, 0x001d6b9c[ 56] + 11: 192.01, 0x001d6bdc[ 72] + 12: 187.01, 0x001d6c2c[ 144] + 13: 0.00, 0x001d6cc4[14848828] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 38 63 6d 70 51 61 uQ..Bz.`QQ8cmpQa + 38 63 6d 70 61 51 38 63 6d 70 37 61 62 63 37 61 8cmpaQ8cmp7abc7a + 62 63 38 63 6d 70 37 61 62 63 37 61 62 64 38 63 bc8cmp7abc7abd8c + 6d 70 37 61 62 63 47 61 62 63 31 38 63 6d 70 37 mp7abcGabc18cmp7 + 61 62 64 37 61 62 63 38 63 6d 70 47 61 62 63 31 abd7abc8cmpGabc1 + 37 61 62 63 38 63 6d 70 07 07 38 63 6d 70 07 17 7abc8cmp..8cmp.. + 61 38 63 6d 70 17 61 07 38 63 6d 70 39 66 6f 6f a8cmp.a.8cmp9foo + 37 66 6f 6f 38 63 6d 70 00 00 38 63 6d 70 00 31 7foo8cmp..8cmp.1 + 38 63 6d 70 51 37 61 62 63 38 63 6d 70 36 81 0a 8cmpQ7abc8cmp6.. + 13 36 81 0a 13 38 63 6d 70 59 66 6f 6f 5f 31 18 .6...8cmpYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 38 63 6d 70 18 5b 61 18 5d 18 Xfoo_28cmp.[a.]. + 5b 61 18 5d 38 63 6d 70 [a.]8cmp + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [ 2] #198.1.1.num.int <1 (0x1)> + [ 3] #201.1.1.num.int <0 (0x0)> + [ 4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [ 5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [ 6] #210.1.1.num.int <1 (0x1)> + [ 7] #213.1.1.num.int <1 (0x1)> + [ 8] #216.1.1.num.int <0 (0x0)> + [ 9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #222.1.1.num.int <1 (0x1)> + [11] #225.1.1.num.int <1 (0x1)> + [12] #226.1.1.num.int <0 (0x0)> + [13] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #231.1.1.num.int <1 (0x1)> + [15] #234.1.1.num.int <0 (0x0)> + [16] #241.1.1.num.int <0 (0x0)> + [17] #246.1.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0xd8 (0xd8) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #195.1.1.num.int <-1 (0xffffffffffffffff)> + #198.1.1.num.int <1 (0x1)> + #201.1.1.num.int <0 (0x0)> + #204.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <-1 (0xffffffffffffffff)> + #210.1.1.num.int <1 (0x1)> + #213.1.1.num.int <1 (0x1)> + #216.1.1.num.int <0 (0x0)> + #219.1.1.num.int <-1 (0xffffffffffffffff)> + #222.1.1.num.int <1 (0x1)> + #225.1.1.num.int <1 (0x1)> + #226.1.1.num.int <0 (0x0)> + #228.1.1.num.int <-1 (0xffffffffffffffff)> + #231.1.1.num.int <1 (0x1)> + #234.1.1.num.int <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.int <0 (0x0)> + #246.1.1.num.int <-1 (0xffffffffffffffff)> diff --git a/tests/0040_cmp/screen.log.ref b/tests/0040_cmp/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0040_cmp/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0040_cmp/trace.log.ref b/tests/0040_cmp/trace.log.ref new file mode 100644 index 0000000..8f445ee --- /dev/null +++ b/tests/0040_cmp/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x15, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <1 (0x1)> + [1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1a, type 7, 27[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x1b, size 3, "abc"> + [1] #198.1.1.num.int <1 (0x1)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 7, 31[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1f, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1b, size 3, "abc"> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #198.1.1.num.int <1 (0x1)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x27, size 3, "abc"> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 7, 43[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2b, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abc"> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2e, type 8, 47[3] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x32, type 7, 51[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x33, size 3, "abc"> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x36, type 7, 55[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x37, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x33, size 3, "abc"> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3b, type 8, 60[3] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3f, type 7, 64[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x40, size 3, "abd"> + [1] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x43, type 7, 68[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x44, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x40, size 3, "abd"> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x47, type 8, 72[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <1 (0x1)> + [1] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 7, 76[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4c, size 4, "abc1"> + [1] #210.1.1.num.int <1 (0x1)> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x50, type 7, 81[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4c, size 4, "abc1"> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 8, 85[3] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <1 (0x1)> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x58, type 7, 89[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x59, size 0, ""> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x59, type 7, 90[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5a, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x59, size 0, ""> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 8, 91[3] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <0 (0x0)> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5e, type 7, 95[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5f, size 0, ""> + [1] #216.1.1.num.int <0 (0x0)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 7, 96[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x60, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5f, size 0, ""> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x61, type 8, 98[3] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #216.1.1.num.int <0 (0x0)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x65, type 7, 102[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x66, size 1, "a"> + [1] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x67, type 7, 104[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x68, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 1, "a"> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <1 (0x1)> + [1] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 9, 109[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x6d, size 3, "foo"> + [1] #222.1.1.num.int <1 (0x1)> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x70, type 7, 113[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x71, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x6d, size 3, "foo"> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x74, type 8, 117[3] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <1 (0x1)> + [1] #222.1.1.num.int <1 (0x1)> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x78, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.int <1 (0x1)> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x79, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7a, type 8, 123[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <0 (0x0)> + [1] #225.1.1.num.int <1 (0x1)> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7e, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x80, type 8, 129[3] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x84, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x85, type 7, 134[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x86, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x89, type 8, 138[3] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <1 (0x1)> + [1] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8d, type 6, 142[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x8e, size 3> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x91, type 6, 146[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x92, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x8e, size 3> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0x95, type 8, 150[3] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x99, type 9, 154[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9f, type 8, 160[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa2, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [4] #234.1.1.num.int <0 (0x0)> + [5] #231.1.1.num.int <1 (0x1)> + [6] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #226.1.1.num.int <0 (0x0)> + [8] #225.1.1.num.int <1 (0x1)> + [9] #222.1.1.num.int <1 (0x1)> + [10] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #216.1.1.num.int <0 (0x0)> + [12] #213.1.1.num.int <1 (0x1)> + [13] #210.1.1.num.int <1 (0x1)> + [14] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <1 (0x1)> + [18] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa3, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [5] #234.1.1.num.int <0 (0x0)> + [6] #231.1.1.num.int <1 (0x1)> + [7] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #226.1.1.num.int <0 (0x0)> + [9] #225.1.1.num.int <1 (0x1)> + [10] #222.1.1.num.int <1 (0x1)> + [11] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #216.1.1.num.int <0 (0x0)> + [13] #213.1.1.num.int <1 (0x1)> + [14] #210.1.1.num.int <1 (0x1)> + [15] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <1 (0x1)> + [19] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa4, type 8, 165[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xaa, type 9, 171[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb6, type 8, 183[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xba, type 8, 187[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc0, type 8, 193[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc6, type 8, 199[3] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <0 (0x0)> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xca, type 8, 203[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcc, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcd, type 8, 206[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcf, type 8, 208[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd1, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.int <0 (0x0)> + [4] #234.1.1.num.int <0 (0x0)> + [5] #231.1.1.num.int <1 (0x1)> + [6] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #226.1.1.num.int <0 (0x0)> + [8] #225.1.1.num.int <1 (0x1)> + [9] #222.1.1.num.int <1 (0x1)> + [10] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #216.1.1.num.int <0 (0x0)> + [12] #213.1.1.num.int <1 (0x1)> + [13] #210.1.1.num.int <1 (0x1)> + [14] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <1 (0x1)> + [18] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 8, 211[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd4, type 8, 213[3] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> diff --git a/tests/0041_eq/basic.log.ref b/tests/0041_eq/basic.log.ref new file mode 100644 index 0000000..a5c5929 --- /dev/null +++ b/tests/0041_eq/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0041_eq/code.log.ref b/tests/0041_eq/code.log.ref new file mode 100644 index 0000000..100184f --- /dev/null +++ b/tests/0041_eq/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 65 71 eq + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 65 71 eq + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 65 71 eq + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 65 71 eq + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 65 71 eq + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 65 71 eq + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 65 71 eq + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 65 71 eq + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 65 71 eq + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 65 71 eq + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 65 71 eq + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 65 71 eq + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 65 71 eq + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 65 71 eq + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 65 71 eq + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 65 71 eq + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 65 71 eq + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 65 71 eq diff --git a/tests/0041_eq/code1.log.ref b/tests/0041_eq/code1.log.ref new file mode 100644 index 0000000..0b483be --- /dev/null +++ b/tests/0041_eq/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 65 71 eq + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 eq + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 eq + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f eq + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 eq + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f eq + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 eq + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b eq + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f eq + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 eq + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 eq + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 eq + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 eq + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a eq + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f eq + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 eq + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 eq + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e eq diff --git a/tests/0041_eq/code2.log.ref b/tests/0041_eq/code2.log.ref new file mode 100644 index 0000000..c8b03af --- /dev/null +++ b/tests/0041_eq/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2d eq + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2d eq + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2d eq + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2d eq + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2d eq + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2d eq + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2d eq + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2d eq + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2d eq + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2d eq + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2d eq + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2d eq + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2d eq + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2d eq + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2d eq + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2d eq + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2d eq + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2d eq diff --git a/tests/0041_eq/main.gs b/tests/0041_eq/main.gs new file mode 100644 index 0000000..dd63772 --- /dev/null +++ b/tests/0041_eq/main.gs @@ -0,0 +1,20 @@ +5 5 eq +5 6 eq +6 5 eq +"abc" "abc" eq +"abc" "abd" eq +"abc" "abc1" eq +"abd" "abc" eq +"abc1" "abc" eq +"" "" eq +"" "a" eq +"a" "" eq +/foo "foo" eq +nil nil eq +nil 3 eq +5 "abc" eq +{ 10 } { 10 } eq +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 eq +[ 6 ] [ 6 ] eq diff --git a/tests/0041_eq/mem.log.ref b/tests/0041_eq/mem.log.ref new file mode 100644 index 0000000..b33cf31 --- /dev/null +++ b/tests/0041_eq/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 65 71 51 61 28 uQ..Bz.`QQ(eqQa( + 65 71 61 51 28 65 71 37 61 62 63 37 61 62 63 28 eqaQ(eq7abc7abc( + 65 71 37 61 62 63 37 61 62 64 28 65 71 37 61 62 eq7abc7abd(eq7ab + 63 47 61 62 63 31 28 65 71 37 61 62 64 37 61 62 cGabc1(eq7abd7ab + 63 28 65 71 47 61 62 63 31 37 61 62 63 28 65 71 c(eqGabc17abc(eq + 07 07 28 65 71 07 17 61 28 65 71 17 61 07 28 65 ..(eq..a(eq.a.(e + 71 39 66 6f 6f 37 66 6f 6f 28 65 71 00 00 28 65 q9foo7foo(eq..(e + 71 00 31 28 65 71 51 37 61 62 63 28 65 71 36 81 q.1(eqQ7abc(eq6. + 0a 13 36 81 0a 13 28 65 71 59 66 6f 6f 5f 31 18 ..6...(eqYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 65 71 18 5b 61 18 5d 18 5b Xfoo_2(eq.[a.].[ + 61 18 5d 28 65 71 a.](eq + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0041_eq/screen.log.ref b/tests/0041_eq/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0041_eq/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0041_eq/trace.log.ref b/tests/0041_eq/trace.log.ref new file mode 100644 index 0000000..98fc444 --- /dev/null +++ b/tests/0041_eq/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0042_ne/basic.log.ref b/tests/0042_ne/basic.log.ref new file mode 100644 index 0000000..8fd1845 --- /dev/null +++ b/tests/0042_ne/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0042_ne/code.log.ref b/tests/0042_ne/code.log.ref new file mode 100644 index 0000000..963059d --- /dev/null +++ b/tests/0042_ne/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6e 65 ne + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6e 65 ne + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6e 65 ne + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6e 65 ne + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6e 65 ne + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6e 65 ne + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6e 65 ne + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6e 65 ne + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6e 65 ne + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6e 65 ne + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6e 65 ne + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6e 65 ne + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6e 65 ne + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6e 65 ne + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6e 65 ne + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6e 65 ne + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6e 65 ne + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6e 65 ne diff --git a/tests/0042_ne/code1.log.ref b/tests/0042_ne/code1.log.ref new file mode 100644 index 0000000..9490894 --- /dev/null +++ b/tests/0042_ne/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6e 65 ne + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 ne + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 ne + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f ne + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 ne + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f ne + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 ne + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b ne + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f ne + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 ne + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 ne + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 ne + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 ne + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a ne + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f ne + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 ne + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 ne + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e ne diff --git a/tests/0042_ne/code2.log.ref b/tests/0042_ne/code2.log.ref new file mode 100644 index 0000000..bd788a2 --- /dev/null +++ b/tests/0042_ne/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2e ne + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2e ne + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2e ne + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2e ne + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2e ne + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2e ne + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2e ne + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2e ne + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2e ne + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2e ne + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2e ne + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2e ne + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2e ne + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2e ne + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2e ne + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2e ne + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2e ne + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2e ne diff --git a/tests/0042_ne/main.gs b/tests/0042_ne/main.gs new file mode 100644 index 0000000..8c8058b --- /dev/null +++ b/tests/0042_ne/main.gs @@ -0,0 +1,20 @@ +5 5 ne +5 6 ne +6 5 ne +"abc" "abc" ne +"abc" "abd" ne +"abc" "abc1" ne +"abd" "abc" ne +"abc1" "abc" ne +"" "" ne +"" "a" ne +"a" "" ne +/foo "foo" ne +nil nil ne +nil 3 ne +5 "abc" ne +{ 10 } { 10 } ne +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 ne +[ 6 ] [ 6 ] ne diff --git a/tests/0042_ne/mem.log.ref b/tests/0042_ne/mem.log.ref new file mode 100644 index 0000000..ba48cf9 --- /dev/null +++ b/tests/0042_ne/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6e 65 51 61 28 uQ..Bz.`QQ(neQa( + 6e 65 61 51 28 6e 65 37 61 62 63 37 61 62 63 28 neaQ(ne7abc7abc( + 6e 65 37 61 62 63 37 61 62 64 28 6e 65 37 61 62 ne7abc7abd(ne7ab + 63 47 61 62 63 31 28 6e 65 37 61 62 64 37 61 62 cGabc1(ne7abd7ab + 63 28 6e 65 47 61 62 63 31 37 61 62 63 28 6e 65 c(neGabc17abc(ne + 07 07 28 6e 65 07 17 61 28 6e 65 17 61 07 28 6e ..(ne..a(ne.a.(n + 65 39 66 6f 6f 37 66 6f 6f 28 6e 65 00 00 28 6e e9foo7foo(ne..(n + 65 00 31 28 6e 65 51 37 61 62 63 28 6e 65 36 81 e.1(neQ7abc(ne6. + 0a 13 36 81 0a 13 28 6e 65 59 66 6f 6f 5f 31 18 ..6...(neYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6e 65 18 5b 61 18 5d 18 5b Xfoo_2(ne.[a.].[ + 61 18 5d 28 6e 65 a.](ne + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0042_ne/screen.log.ref b/tests/0042_ne/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0042_ne/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0042_ne/trace.log.ref b/tests/0042_ne/trace.log.ref new file mode 100644 index 0000000..972b8df --- /dev/null +++ b/tests/0042_ne/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/basic.log.ref b/tests/0043_gt/basic.log.ref new file mode 100644 index 0000000..cc1bfa1 --- /dev/null +++ b/tests/0043_gt/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/code.log.ref b/tests/0043_gt/code.log.ref new file mode 100644 index 0000000..5dfab3e --- /dev/null +++ b/tests/0043_gt/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 74 gt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 67 74 gt + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 67 74 gt + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 67 74 gt + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 67 74 gt + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 67 74 gt + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 67 74 gt + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 67 74 gt + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 67 74 gt + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 67 74 gt + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 67 74 gt + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 67 74 gt + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 67 74 gt + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 67 74 gt + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 67 74 gt + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 67 74 gt + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 67 74 gt + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 67 74 gt diff --git a/tests/0043_gt/code1.log.ref b/tests/0043_gt/code1.log.ref new file mode 100644 index 0000000..f36f590 --- /dev/null +++ b/tests/0043_gt/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 74 gt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 gt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 gt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f gt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 gt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f gt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 gt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b gt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f gt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 gt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 gt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 gt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 gt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a gt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f gt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 gt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 gt + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e gt diff --git a/tests/0043_gt/code2.log.ref b/tests/0043_gt/code2.log.ref new file mode 100644 index 0000000..0fcd57d --- /dev/null +++ b/tests/0043_gt/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2f gt + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2f gt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2f gt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2f gt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2f gt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2f gt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2f gt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2f gt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2f gt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2f gt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2f gt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2f gt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2f gt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2f gt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2f gt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2f gt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2f gt + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2f gt diff --git a/tests/0043_gt/main.gs b/tests/0043_gt/main.gs new file mode 100644 index 0000000..60a8ec2 --- /dev/null +++ b/tests/0043_gt/main.gs @@ -0,0 +1,20 @@ +5 5 gt +5 6 gt +6 5 gt +"abc" "abc" gt +"abc" "abd" gt +"abc" "abc1" gt +"abd" "abc" gt +"abc1" "abc" gt +"" "" gt +"" "a" gt +"a" "" gt +/foo "foo" gt +nil nil gt +nil 3 gt +5 "abc" gt +{ 10 } { 10 } gt +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 gt +[ 6 ] [ 6 ] gt diff --git a/tests/0043_gt/mem.log.ref b/tests/0043_gt/mem.log.ref new file mode 100644 index 0000000..ee085cb --- /dev/null +++ b/tests/0043_gt/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 67 74 51 61 28 uQ..Bz.`QQ(gtQa( + 67 74 61 51 28 67 74 37 61 62 63 37 61 62 63 28 gtaQ(gt7abc7abc( + 67 74 37 61 62 63 37 61 62 64 28 67 74 37 61 62 gt7abc7abd(gt7ab + 63 47 61 62 63 31 28 67 74 37 61 62 64 37 61 62 cGabc1(gt7abd7ab + 63 28 67 74 47 61 62 63 31 37 61 62 63 28 67 74 c(gtGabc17abc(gt + 07 07 28 67 74 07 17 61 28 67 74 17 61 07 28 67 ..(gt..a(gt.a.(g + 74 39 66 6f 6f 37 66 6f 6f 28 67 74 00 00 28 67 t9foo7foo(gt..(g + 74 00 31 28 67 74 51 37 61 62 63 28 67 74 36 81 t.1(gtQ7abc(gt6. + 0a 13 36 81 0a 13 28 67 74 59 66 6f 6f 5f 31 18 ..6...(gtYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 67 74 18 5b 61 18 5d 18 5b Xfoo_2(gt.[a.].[ + 61 18 5d 28 67 74 a.](gt + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/screen.log.ref b/tests/0043_gt/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0043_gt/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0043_gt/trace.log.ref b/tests/0043_gt/trace.log.ref new file mode 100644 index 0000000..428b993 --- /dev/null +++ b/tests/0043_gt/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0044_ge/basic.log.ref b/tests/0044_ge/basic.log.ref new file mode 100644 index 0000000..de75c96 --- /dev/null +++ b/tests/0044_ge/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0044_ge/code.log.ref b/tests/0044_ge/code.log.ref new file mode 100644 index 0000000..fc0d206 --- /dev/null +++ b/tests/0044_ge/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 65 ge + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 67 65 ge + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 67 65 ge + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 67 65 ge + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 67 65 ge + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 67 65 ge + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 67 65 ge + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 67 65 ge + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 67 65 ge + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 67 65 ge + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 67 65 ge + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 67 65 ge + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 67 65 ge + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 67 65 ge + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 67 65 ge + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 67 65 ge + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 67 65 ge + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 67 65 ge diff --git a/tests/0044_ge/code1.log.ref b/tests/0044_ge/code1.log.ref new file mode 100644 index 0000000..7a44d5a --- /dev/null +++ b/tests/0044_ge/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 65 ge + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 ge + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 ge + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f ge + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 ge + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f ge + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 ge + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b ge + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f ge + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 ge + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 ge + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 ge + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 ge + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a ge + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f ge + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 ge + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 ge + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e ge diff --git a/tests/0044_ge/code2.log.ref b/tests/0044_ge/code2.log.ref new file mode 100644 index 0000000..4bfd1a0 --- /dev/null +++ b/tests/0044_ge/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 30 ge + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 30 ge + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 30 ge + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 30 ge + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 30 ge + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 30 ge + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 30 ge + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 30 ge + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 30 ge + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 30 ge + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 30 ge + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 30 ge + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 30 ge + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 30 ge + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 30 ge + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 30 ge + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 30 ge + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 30 ge diff --git a/tests/0044_ge/main.gs b/tests/0044_ge/main.gs new file mode 100644 index 0000000..4dae65e --- /dev/null +++ b/tests/0044_ge/main.gs @@ -0,0 +1,20 @@ +5 5 ge +5 6 ge +6 5 ge +"abc" "abc" ge +"abc" "abd" ge +"abc" "abc1" ge +"abd" "abc" ge +"abc1" "abc" ge +"" "" ge +"" "a" ge +"a" "" ge +/foo "foo" ge +nil nil ge +nil 3 ge +5 "abc" ge +{ 10 } { 10 } ge +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 ge +[ 6 ] [ 6 ] ge diff --git a/tests/0044_ge/mem.log.ref b/tests/0044_ge/mem.log.ref new file mode 100644 index 0000000..d11cd46 --- /dev/null +++ b/tests/0044_ge/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 67 65 51 61 28 uQ..Bz.`QQ(geQa( + 67 65 61 51 28 67 65 37 61 62 63 37 61 62 63 28 geaQ(ge7abc7abc( + 67 65 37 61 62 63 37 61 62 64 28 67 65 37 61 62 ge7abc7abd(ge7ab + 63 47 61 62 63 31 28 67 65 37 61 62 64 37 61 62 cGabc1(ge7abd7ab + 63 28 67 65 47 61 62 63 31 37 61 62 63 28 67 65 c(geGabc17abc(ge + 07 07 28 67 65 07 17 61 28 67 65 17 61 07 28 67 ..(ge..a(ge.a.(g + 65 39 66 6f 6f 37 66 6f 6f 28 67 65 00 00 28 67 e9foo7foo(ge..(g + 65 00 31 28 67 65 51 37 61 62 63 28 67 65 36 81 e.1(geQ7abc(ge6. + 0a 13 36 81 0a 13 28 67 65 59 66 6f 6f 5f 31 18 ..6...(geYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 67 65 18 5b 61 18 5d 18 5b Xfoo_2(ge.[a.].[ + 61 18 5d 28 67 65 a.](ge + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0044_ge/screen.log.ref b/tests/0044_ge/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0044_ge/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0044_ge/trace.log.ref b/tests/0044_ge/trace.log.ref new file mode 100644 index 0000000..2fe43fb --- /dev/null +++ b/tests/0044_ge/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0045_lt/basic.log.ref b/tests/0045_lt/basic.log.ref new file mode 100644 index 0000000..083afba --- /dev/null +++ b/tests/0045_lt/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0045_lt/code.log.ref b/tests/0045_lt/code.log.ref new file mode 100644 index 0000000..a8df53d --- /dev/null +++ b/tests/0045_lt/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 74 lt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6c 74 lt + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6c 74 lt + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6c 74 lt + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6c 74 lt + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6c 74 lt + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6c 74 lt + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6c 74 lt + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6c 74 lt + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6c 74 lt + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6c 74 lt + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6c 74 lt + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6c 74 lt + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6c 74 lt + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6c 74 lt + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6c 74 lt + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6c 74 lt + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6c 74 lt diff --git a/tests/0045_lt/code1.log.ref b/tests/0045_lt/code1.log.ref new file mode 100644 index 0000000..3347fcf --- /dev/null +++ b/tests/0045_lt/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 74 lt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 lt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 lt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f lt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 lt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f lt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 lt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b lt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f lt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 lt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 lt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 lt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 lt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a lt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f lt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 lt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 lt + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e lt diff --git a/tests/0045_lt/code2.log.ref b/tests/0045_lt/code2.log.ref new file mode 100644 index 0000000..f4f75fb --- /dev/null +++ b/tests/0045_lt/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 31 lt + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 31 lt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 31 lt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 31 lt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 31 lt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 31 lt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 31 lt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 31 lt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 31 lt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 31 lt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 31 lt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 31 lt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 31 lt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 31 lt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 31 lt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 31 lt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 31 lt + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 31 lt diff --git a/tests/0045_lt/main.gs b/tests/0045_lt/main.gs new file mode 100644 index 0000000..fcdb623 --- /dev/null +++ b/tests/0045_lt/main.gs @@ -0,0 +1,20 @@ +5 5 lt +5 6 lt +6 5 lt +"abc" "abc" lt +"abc" "abd" lt +"abc" "abc1" lt +"abd" "abc" lt +"abc1" "abc" lt +"" "" lt +"" "a" lt +"a" "" lt +/foo "foo" lt +nil nil lt +nil 3 lt +5 "abc" lt +{ 10 } { 10 } lt +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 lt +[ 6 ] [ 6 ] lt diff --git a/tests/0045_lt/mem.log.ref b/tests/0045_lt/mem.log.ref new file mode 100644 index 0000000..c650468 --- /dev/null +++ b/tests/0045_lt/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6c 74 51 61 28 uQ..Bz.`QQ(ltQa( + 6c 74 61 51 28 6c 74 37 61 62 63 37 61 62 63 28 ltaQ(lt7abc7abc( + 6c 74 37 61 62 63 37 61 62 64 28 6c 74 37 61 62 lt7abc7abd(lt7ab + 63 47 61 62 63 31 28 6c 74 37 61 62 64 37 61 62 cGabc1(lt7abd7ab + 63 28 6c 74 47 61 62 63 31 37 61 62 63 28 6c 74 c(ltGabc17abc(lt + 07 07 28 6c 74 07 17 61 28 6c 74 17 61 07 28 6c ..(lt..a(lt.a.(l + 74 39 66 6f 6f 37 66 6f 6f 28 6c 74 00 00 28 6c t9foo7foo(lt..(l + 74 00 31 28 6c 74 51 37 61 62 63 28 6c 74 36 81 t.1(ltQ7abc(lt6. + 0a 13 36 81 0a 13 28 6c 74 59 66 6f 6f 5f 31 18 ..6...(ltYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6c 74 18 5b 61 18 5d 18 5b Xfoo_2(lt.[a.].[ + 61 18 5d 28 6c 74 a.](lt + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0045_lt/screen.log.ref b/tests/0045_lt/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0045_lt/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0045_lt/trace.log.ref b/tests/0045_lt/trace.log.ref new file mode 100644 index 0000000..4edeb70 --- /dev/null +++ b/tests/0045_lt/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0046_le/basic.log.ref b/tests/0046_le/basic.log.ref new file mode 100644 index 0000000..0b51887 --- /dev/null +++ b/tests/0046_le/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0046_le/code.log.ref b/tests/0046_le/code.log.ref new file mode 100644 index 0000000..0aac0ae --- /dev/null +++ b/tests/0046_le/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 65 le + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6c 65 le + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6c 65 le + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6c 65 le + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6c 65 le + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6c 65 le + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6c 65 le + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6c 65 le + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6c 65 le + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6c 65 le + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6c 65 le + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6c 65 le + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6c 65 le + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6c 65 le + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6c 65 le + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6c 65 le + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6c 65 le + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6c 65 le diff --git a/tests/0046_le/code1.log.ref b/tests/0046_le/code1.log.ref new file mode 100644 index 0000000..19ec567 --- /dev/null +++ b/tests/0046_le/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 65 le + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 le + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 le + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f le + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 le + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f le + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 le + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b le + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f le + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 le + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 le + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 le + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 le + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a le + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f le + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 le + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 le + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e le diff --git a/tests/0046_le/code2.log.ref b/tests/0046_le/code2.log.ref new file mode 100644 index 0000000..23a25d4 --- /dev/null +++ b/tests/0046_le/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 32 le + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 32 le + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 32 le + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 32 le + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 32 le + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 32 le + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 32 le + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 32 le + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 32 le + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 32 le + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 32 le + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 32 le + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 32 le + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 32 le + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 32 le + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 32 le + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 32 le + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 32 le diff --git a/tests/0046_le/main.gs b/tests/0046_le/main.gs new file mode 100644 index 0000000..1299f21 --- /dev/null +++ b/tests/0046_le/main.gs @@ -0,0 +1,20 @@ +5 5 le +5 6 le +6 5 le +"abc" "abc" le +"abc" "abd" le +"abc" "abc1" le +"abd" "abc" le +"abc1" "abc" le +"" "" le +"" "a" le +"a" "" le +/foo "foo" le +nil nil le +nil 3 le +5 "abc" le +{ 10 } { 10 } le +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 le +[ 6 ] [ 6 ] le diff --git a/tests/0046_le/mem.log.ref b/tests/0046_le/mem.log.ref new file mode 100644 index 0000000..fe37ef5 --- /dev/null +++ b/tests/0046_le/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6c 65 51 61 28 uQ..Bz.`QQ(leQa( + 6c 65 61 51 28 6c 65 37 61 62 63 37 61 62 63 28 leaQ(le7abc7abc( + 6c 65 37 61 62 63 37 61 62 64 28 6c 65 37 61 62 le7abc7abd(le7ab + 63 47 61 62 63 31 28 6c 65 37 61 62 64 37 61 62 cGabc1(le7abd7ab + 63 28 6c 65 47 61 62 63 31 37 61 62 63 28 6c 65 c(leGabc17abc(le + 07 07 28 6c 65 07 17 61 28 6c 65 17 61 07 28 6c ..(le..a(le.a.(l + 65 39 66 6f 6f 37 66 6f 6f 28 6c 65 00 00 28 6c e9foo7foo(le..(l + 65 00 31 28 6c 65 51 37 61 62 63 28 6c 65 36 81 e.1(leQ7abc(le6. + 0a 13 36 81 0a 13 28 6c 65 59 66 6f 6f 5f 31 18 ..6...(leYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6c 65 18 5b 61 18 5d 18 5b Xfoo_2(le.[a.].[ + 61 18 5d 28 6c 65 a.](le + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0046_le/screen.log.ref b/tests/0046_le/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0046_le/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0046_le/trace.log.ref b/tests/0046_le/trace.log.ref new file mode 100644 index 0000000..3f91a56 --- /dev/null +++ b/tests/0046_le/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0047_hash/basic.log.ref b/tests/0047_hash/basic.log.ref new file mode 100644 index 0000000..0b19880 --- /dev/null +++ b/tests/0047_hash/basic.log.ref @@ -0,0 +1,536 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [4] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.2.num.int <300 (0x12c)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.2.num.int <100 (0x64)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <100 (0x64)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.2.num.int <300 (0x12c)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <100 (0x64)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.2.num.int <300 (0x12c)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.2.num.int <300 (0x12c)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> diff --git a/tests/0047_hash/code.log.ref b/tests/0047_hash/code.log.ref new file mode 100644 index 0000000..e87d520 --- /dev/null +++ b/tests/0047_hash/code.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 int 81 21 33 + 7 0x00018 str 27 62 62 "bb" + 8 0x0001b int 81 16 22 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 2 11 0x00023 word 38 66 6f 6f foo + 12 0x00027 str 27 62 62 "bb" + 13 0x0002a word 38 67 65 74 get + 3 14 0x0002e word 38 66 6f 6f foo + 15 0x00032 str 27 62 62 "bb" + 16 0x00035 int 81 63 99 + 17 0x00037 word 38 70 75 74 put + 5 18 0x0003b ref 39 62 61 72 /bar + 19 0x0003f word 18 28 ( + 20 0x00041 word 18 29 ) + 21 0x00043 word 38 64 65 66 def + 7 22 0x00047 word 38 62 61 72 bar + 23 0x0004b str 27 62 62 "bb" + 24 0x0004e int 91 c8 00 200 + 25 0x00051 word 38 70 75 74 put + 8 26 0x00055 word 38 62 61 72 bar + 27 0x00059 str 27 63 63 "cc" + 28 0x0005c int 91 2c 01 300 + 29 0x0005f word 38 70 75 74 put + 9 30 0x00063 word 38 62 61 72 bar + 31 0x00067 str 27 61 61 "aa" + 32 0x0006a int 81 64 100 + 33 0x0006c word 38 70 75 74 put + 11 34 0x00070 word 38 62 61 72 bar + 35 0x00074 code 16 { + 36 0x00075 prim 13 } + 37 0x00076 word 68 66 6f 72 61 6c 6c forall + 13 38 0x0007d int 91 e8 03 1000 + 15 39 0x00080 word 38 62 61 72 bar + 40 0x00084 str 27 61 61 "aa" + 41 0x00087 word 68 64 65 6c 65 74 65 delete + 16 42 0x0008e word 38 62 61 72 bar + 43 0x00092 str 27 63 63 "cc" + 44 0x00095 word 68 64 65 6c 65 74 65 delete + 17 45 0x0009c word 38 62 61 72 bar + 46 0x000a0 str 27 62 62 "bb" + 47 0x000a3 word 68 64 65 6c 65 74 65 delete + 18 48 0x000aa word 38 62 61 72 bar + 49 0x000ae str 27 78 78 "xx" + 50 0x000b1 word 68 64 65 6c 65 74 65 delete + 20 51 0x000b8 word 38 62 61 72 bar + 52 0x000bc code 16 { + 53 0x000bd prim 13 } + 54 0x000be word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0047_hash/code1.log.ref b/tests/0047_hash/code1.log.ref new file mode 100644 index 0000000..5bed497 --- /dev/null +++ b/tests/0047_hash/code1.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 int 81 21 33 + 7 0x00018 str 27 62 62 "bb" + 8 0x0001b int 81 16 22 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 2 11 0x00023 word 38 66 6f 6f foo + 12 0x00027 xref 84 0f "bb" + 13 0x00029 word 38 67 65 74 get + 3 14 0x0002d xref 84 0a foo + 15 0x0002f xref 84 17 "bb" + 16 0x00031 int 81 63 99 + 17 0x00033 word 38 70 75 74 put + 5 18 0x00037 ref 39 62 61 72 /bar + 19 0x0003b word 18 28 ( + 20 0x0003d word 18 29 ) + 21 0x0003f xref 84 20 def + 7 22 0x00041 word 38 62 61 72 bar + 23 0x00045 xref 84 2d "bb" + 24 0x00047 int 91 c8 00 200 + 25 0x0004a xref 84 17 put + 8 26 0x0004c xref 84 0b bar + 27 0x0004e xref 84 3b "cc" + 28 0x00050 int 91 2c 01 300 + 29 0x00053 xref 84 20 put + 9 30 0x00055 xref 84 14 bar + 31 0x00057 xref 84 49 "aa" + 32 0x00059 int 81 64 100 + 33 0x0005b xref 84 28 put + 11 34 0x0005d xref 84 1c bar + 35 0x0005f code 16 { + 36 0x00060 prim 13 } + 37 0x00061 word 68 66 6f 72 61 6c 6c forall + 13 38 0x00068 int 91 e8 03 1000 + 15 39 0x0006b xref 84 2a bar + 40 0x0006d xref 84 5f "aa" + 41 0x0006f word 68 64 65 6c 65 74 65 delete + 16 42 0x00076 xref 84 35 bar + 43 0x00078 xref 84 65 "cc" + 44 0x0007a xref 84 0b delete + 17 45 0x0007c xref 84 3b bar + 46 0x0007e xref 84 66 "bb" + 47 0x00080 xref 84 11 delete + 18 48 0x00082 xref 84 41 bar + 49 0x00084 str 27 78 78 "xx" + 50 0x00087 xref 84 18 delete + 20 51 0x00089 xref 84 48 bar + 52 0x0008b code 16 { + 53 0x0008c prim 13 } + 54 0x0008d xref 84 2c forall diff --git a/tests/0047_hash/code2.log.ref b/tests/0047_hash/code2.log.ref new file mode 100644 index 0000000..530dc80 --- /dev/null +++ b/tests/0047_hash/code2.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 63 63 "cc" + 6 0x00015 int 81 21 33 + 7 0x00017 str 27 62 62 "bb" + 8 0x0001a int 81 16 22 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 2 11 0x0001e word 38 66 6f 6f foo + 12 0x00022 xref 84 0b "bb" + 13 0x00024 prim 83 12 get + 3 14 0x00026 xref 84 08 foo + 15 0x00028 xref 84 11 "bb" + 16 0x0002a int 81 63 99 + 17 0x0002c prim 83 13 put + 5 18 0x0002e ref 39 62 61 72 /bar + 19 0x00032 prim 43 ( + 20 0x00033 prim 53 ) + 21 0x00034 prim 63 def + 7 22 0x00035 word 38 62 61 72 bar + 23 0x00039 xref 84 22 "bb" + 24 0x0003b int 91 c8 00 200 + 25 0x0003e prim 83 13 put + 8 26 0x00040 xref 84 0b bar + 27 0x00042 xref 84 30 "cc" + 28 0x00044 int 91 2c 01 300 + 29 0x00047 prim 83 13 put + 9 30 0x00049 xref 84 14 bar + 31 0x0004b xref 84 3e "aa" + 32 0x0004d int 81 64 100 + 33 0x0004f prim 83 13 put + 11 34 0x00051 xref 84 1c bar + 35 0x00053 code 16 { + 36 0x00054 prim 13 } + 37 0x00055 prim 83 0e forall + 13 38 0x00057 int 91 e8 03 1000 + 15 39 0x0005a xref 84 25 bar + 40 0x0005c xref 84 4f "aa" + 41 0x0005e prim 83 14 delete + 16 42 0x00060 xref 84 2b bar + 43 0x00062 xref 84 50 "cc" + 44 0x00064 prim 83 14 delete + 17 45 0x00066 xref 84 31 bar + 46 0x00068 xref 84 51 "bb" + 47 0x0006a prim 83 14 delete + 18 48 0x0006c xref 84 37 bar + 49 0x0006e str 27 78 78 "xx" + 50 0x00071 prim 83 14 delete + 20 51 0x00073 xref 84 3e bar + 52 0x00075 code 16 { + 53 0x00076 prim 13 } + 54 0x00077 prim 83 0e forall diff --git a/tests/0047_hash/main.gs b/tests/0047_hash/main.gs new file mode 100644 index 0000000..51556aa --- /dev/null +++ b/tests/0047_hash/main.gs @@ -0,0 +1,20 @@ +/foo ( "aa" 11 "cc" 33 "bb" 22 ) def +foo "bb" get +foo "bb" 99 put + +/bar ( ) def + +bar "bb" 200 put +bar "cc" 300 put +bar "aa" 100 put + +bar { } forall + +1000 + +bar "aa" delete +bar "cc" delete +bar "bb" delete +bar "xx" delete + +bar { } forall diff --git a/tests/0047_hash/mem.log.ref b/tests/0047_hash/mem.log.ref new file mode 100644 index 0000000..965966d --- /dev/null +++ b/tests/0047_hash/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 187.01, 0x001d6b3c[ 72] + 9: 188.01, 0x001d6b8c[ 56] + 10: 196.01, 0x001d6bcc[ 36] + 11: 198.01, 0x001d6bf8[ 72] + 12: 202.01, 0x001d6c48[ 140] + 13: 0.00, 0x001d6cdc[14848804] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #201.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3c, size 3, "bar"> => #202.1.1.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.9.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 63 63 81 21 27 62 62 81 16 18 29 38 a..'cc.!'bb...)8 + 64 65 66 38 66 6f 6f 27 62 62 38 67 65 74 38 66 def8foo'bb8get8f + 6f 6f 27 62 62 81 63 38 70 75 74 39 62 61 72 18 oo'bb.c8put9bar. + 28 18 29 38 64 65 66 38 62 61 72 27 62 62 91 c8 (.)8def8bar'bb.. + 00 38 70 75 74 38 62 61 72 27 63 63 91 2c 01 38 .8put8bar'cc.,.8 + 70 75 74 38 62 61 72 27 61 61 81 64 38 70 75 74 put8bar'aa.d8put + 38 62 61 72 16 13 68 66 6f 72 61 6c 6c 91 e8 03 8bar..hforall... + 38 62 61 72 27 61 61 68 64 65 6c 65 74 65 38 62 8bar'aahdelete8b + 61 72 27 63 63 68 64 65 6c 65 74 65 38 62 61 72 ar'cchdelete8bar + 27 62 62 68 64 65 6c 65 74 65 38 62 61 72 27 78 'bbhdelete8bar'x + 78 68 64 65 6c 65 74 65 38 62 61 72 16 13 68 66 xhdelete8bar..hf + 6f 72 61 6c 6c orall + #187.1.1.array + [ 0] #195.1.1.num.int <22 (0x16)> + [ 1] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [ 2] #208.1.1.num.int <100 (0x64)> + [ 3] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [ 4] #204.1.1.num.int <200 (0xc8)> + [ 5] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [ 6] #206.1.1.num.int <300 (0x12c)> + [ 7] #211.1.1.num.int <1000 (0x3e8)> + #188.1.1.ctx.func + type 17, ip 0xc5 (0xc5) + code #186.1.9.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x14, size 2, "cc"> + 63 63 cc + #193.1.1.num.int <33 (0x21)> + #195.1.1.num.int <22 (0x16)> + #196.1.1.hash + #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #199.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x33, size 2, "bb"> => #200.1.1.num.int <99 (0x63)> + #192.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x14, size 2, "cc"> => #193.1.1.num.int <33 (0x21)> + #198.1.1.array + #199.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x33, size 2, "bb"> + 62 62 bb + #200.1.1.num.int <99 (0x63)> + #201.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3c, size 3, "bar"> + 62 61 72 bar + #202.1.1.hash + #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + 62 62 bb + #204.1.1.num.int <200 (0xc8)> + #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + 63 63 cc + #206.1.1.num.int <300 (0x12c)> + #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + 61 61 aa + #208.1.1.num.int <100 (0x64)> + #211.1.1.num.int <1000 (0x3e8)> diff --git a/tests/0047_hash/screen.log.ref b/tests/0047_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0047_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0047_hash/trace.log.ref b/tests/0047_hash/trace.log.ref new file mode 100644 index 0000000..3871adb --- /dev/null +++ b/tests/0047_hash/trace.log.ref @@ -0,0 +1,592 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "cc"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <33 (0x21)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "cc"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "bb"> + [1] #193.1.1.num.int <33 (0x21)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "cc"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "bb"> + [2] #193.1.1.num.int <33 (0x21)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 8, 36[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x27, type 7, 40[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x28, size 2, "bb"> + [1] #196.1.2.hash +IP: #186:0x2a, type 8, 43[3] +GC: ++#195.1.1.num.int +GC: --#197.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <22 (0x16)> +IP: #186:0x2e, type 8, 47[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #195.1.2.num.int <22 (0x16)> +IP: #186:0x32, type 7, 51[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x33, size 2, "bb"> + [1] #196.1.2.hash + [2] #195.1.2.num.int <22 (0x16)> +IP: #186:0x35, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <99 (0x63)> + [1] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x33, size 2, "bb"> + [2] #196.1.2.hash + [3] #195.1.2.num.int <22 (0x16)> +IP: #186:0x37, type 8, 56[3] +GC: ++#199.1.1.mem.str.ro +GC: ++#200.1.1.num.int +GC: --#194.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#195.1.2.num.int +GC: --#200.1.2.num.int +GC: --#199.1.2.mem.str.ro +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x3b, type 9, 60[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x3f, type 8, 64[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x41, type 8, 66[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x43, type 8, 68[3] +GC: ++#201.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#201.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x47, type 8, 72[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x4b, type 7, 76[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4c, size 2, "bb"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x4e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <200 (0xc8)> + [1] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4c, size 2, "bb"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x51, type 8, 82[3] +GC: ++#203.1.1.mem.str.ro +GC: ++#204.1.1.num.int +GC: --#204.1.2.num.int +GC: --#203.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x55, type 8, 86[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x59, type 7, 90[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x5c, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <300 (0x12c)> + [1] #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x5f, type 8, 96[3] +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +GC: --#206.1.2.num.int +GC: --#205.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x63, type 8, 100[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x67, type 7, 104[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x6a, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <100 (0x64)> + [1] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x6c, type 8, 109[3] +GC: ++#207.1.1.mem.str.ro +GC: ++#208.1.1.num.int +GC: --#208.1.2.num.int +GC: --#207.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x70, type 8, 113[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x74, type 6, 117[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x75, size 1> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x76, type 8, 119[6] +GC: ++#207.1.1.mem.str.ro +GC: ++#208.1.1.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#209.1.2.mem.code.ro +GC: --#202.1.3.hash +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.2.num.int <100 (0x64)> + [1] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.mem.str.ro +GC: ++#204.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <200 (0xc8)> + [1] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [2] #208.1.2.num.int <100 (0x64)> + [3] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [4] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <300 (0x12c)> + [1] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #204.1.2.num.int <200 (0xc8)> + [3] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [4] #208.1.2.num.int <100 (0x64)> + [5] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [6] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#202.1.2.hash +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <300 (0x12c)> + [1] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #204.1.2.num.int <200 (0xc8)> + [3] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [4] #208.1.2.num.int <100 (0x64)> + [5] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [6] #195.1.1.num.int <22 (0x16)> +IP: #186:0x7d, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.2.num.int <300 (0x12c)> + [2] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.2.num.int <100 (0x64)> + [6] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x80, type 8, 129[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.2.num.int <300 (0x12c)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.2.num.int <100 (0x64)> + [7] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0x84, type 7, 133[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 2, "aa"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.2.num.int <300 (0x12c)> + [4] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.2.num.int <100 (0x64)> + [8] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0x87, type 8, 136[6] +GC: --#207.1.2.mem.str.ro +GC: --#208.1.2.num.int +GC: --#212.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.2.num.int <300 (0x12c)> + [2] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x8e, type 8, 143[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.2.num.int <300 (0x12c)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0x92, type 7, 147[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x93, size 2, "cc"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.2.num.int <300 (0x12c)> + [4] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0x95, type 8, 150[6] +GC: --#205.1.2.mem.str.ro +GC: --#206.1.2.num.int +GC: --#213.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x9c, type 8, 157[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xa0, type 7, 161[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xa1, size 2, "bb"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xa3, type 8, 164[6] +GC: --#203.1.2.mem.str.ro +GC: --#204.1.2.num.int +GC: --#214.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0xaa, type 8, 171[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.1.num.int <200 (0xc8)> + [5] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xae, type 7, 175[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xaf, size 2, "xx"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.1.num.int <200 (0xc8)> + [6] #203.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xb1, type 8, 178[6] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0xb8, type 8, 185[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.1.num.int <200 (0xc8)> + [5] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xbc, type 6, 189[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xbd, size 1> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.1.num.int <200 (0xc8)> + [6] #203.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xbe, type 8, 191[6] +GC: --#216.1.1.mem.code.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> diff --git a/tests/0048_delete_array/basic.log.ref b/tests/0048_delete_array/basic.log.ref new file mode 100644 index 0000000..708dc23 --- /dev/null +++ b/tests/0048_delete_array/basic.log.ref @@ -0,0 +1,130 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0048_delete_array/code.log.ref b/tests/0048_delete_array/code.log.ref new file mode 100644 index 0000000..032977a --- /dev/null +++ b/tests/0048_delete_array/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 str 27 62 62 "bb" + 5 0x00014 str 27 63 63 "cc" + 6 0x00017 str 27 64 64 "dd" + 7 0x0001a word 18 5d ] + 8 0x0001c word 38 64 65 66 def + 3 9 0x00020 word 38 66 6f 6f foo + 10 0x00024 int 21 2 + 11 0x00025 word 68 64 65 6c 65 74 65 delete + 4 12 0x0002c word 38 66 6f 6f foo + 13 0x00030 int 81 ff -1 + 14 0x00032 word 68 64 65 6c 65 74 65 delete + 5 15 0x00039 word 38 66 6f 6f foo + 16 0x0003d int 11 1 + 17 0x0003e word 68 64 65 6c 65 74 65 delete + 6 18 0x00045 word 38 66 6f 6f foo + 19 0x00049 int 01 0 + 20 0x0004a word 68 64 65 6c 65 74 65 delete diff --git a/tests/0048_delete_array/code1.log.ref b/tests/0048_delete_array/code1.log.ref new file mode 100644 index 0000000..344d8bb --- /dev/null +++ b/tests/0048_delete_array/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 str 27 62 62 "bb" + 5 0x00014 str 27 63 63 "cc" + 6 0x00017 str 27 64 64 "dd" + 7 0x0001a word 18 5d ] + 8 0x0001c word 38 64 65 66 def + 3 9 0x00020 word 38 66 6f 6f foo + 10 0x00024 int 21 2 + 11 0x00025 word 68 64 65 6c 65 74 65 delete + 4 12 0x0002c xref 84 0c foo + 13 0x0002e int 81 ff -1 + 14 0x00030 xref 84 0b delete + 5 15 0x00032 xref 84 12 foo + 16 0x00034 int 11 1 + 17 0x00035 xref 84 10 delete + 6 18 0x00037 xref 84 17 foo + 19 0x00039 int 01 0 + 20 0x0003a xref 84 15 delete diff --git a/tests/0048_delete_array/code2.log.ref b/tests/0048_delete_array/code2.log.ref new file mode 100644 index 0000000..428dd7a --- /dev/null +++ b/tests/0048_delete_array/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 23 [ + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 str 27 62 62 "bb" + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 str 27 64 64 "dd" + 7 0x00019 prim 33 ] + 8 0x0001a prim 63 def + 3 9 0x0001b word 38 66 6f 6f foo + 10 0x0001f int 21 2 + 11 0x00020 prim 83 14 delete + 4 12 0x00022 xref 74 foo + 13 0x00023 int 81 ff -1 + 14 0x00025 prim 83 14 delete + 5 15 0x00027 xref 84 0c foo + 16 0x00029 int 11 1 + 17 0x0002a prim 83 14 delete + 6 18 0x0002c xref 84 11 foo + 19 0x0002e int 01 0 + 20 0x0002f prim 83 14 delete diff --git a/tests/0048_delete_array/main.gs b/tests/0048_delete_array/main.gs new file mode 100644 index 0000000..bed66e4 --- /dev/null +++ b/tests/0048_delete_array/main.gs @@ -0,0 +1,6 @@ +/foo [ "aa" "bb" "cc" "dd" ] def + +foo 2 delete +foo -1 delete +foo 1 delete +foo 0 delete diff --git a/tests/0048_delete_array/mem.log.ref b/tests/0048_delete_array/mem.log.ref new file mode 100644 index 0000000..e5776e9 --- /dev/null +++ b/tests/0048_delete_array/mem.log.ref @@ -0,0 +1,761 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 84] + 8: 187.01, 0x001d6ac8[ 72] + 9: 188.01, 0x001d6b18[ 56] + 10: 194.01, 0x001d6b58[ 24] + 11: 196.01, 0x001d6b78[ 72] + 12: 0.00, 0x001d6bc8[14849080] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #194.1.1.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 5b 27 61 uQ..Bz.`9foo.['a + 61 27 62 62 27 63 63 27 64 64 18 5d 38 64 65 66 a'bb'cc'dd.]8def + 38 66 6f 6f 21 68 64 65 6c 65 74 65 38 66 6f 6f 8foo!hdelete8foo + 81 ff 68 64 65 6c 65 74 65 38 66 6f 6f 11 68 64 ..hdelete8foo.hd + 65 6c 65 74 65 38 66 6f 6f 01 68 64 65 6c 65 74 elete8foo.hdelet + 65 e + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x51 (0x51) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #194.1.1.array + #196.1.1.array diff --git a/tests/0048_delete_array/screen.log.ref b/tests/0048_delete_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0048_delete_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0048_delete_array/trace.log.ref b/tests/0048_delete_array/trace.log.ref new file mode 100644 index 0000000..c4cb0cc --- /dev/null +++ b/tests/0048_delete_array/trace.log.ref @@ -0,0 +1,151 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 7, 18[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x12, size 2, "bb"> + [1] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 7, 21[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x15, size 2, "cc"> + [1] #191.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x12, size 2, "bb"> + [2] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x17, type 7, 24[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x18, size 2, "dd"> + [1] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x15, size 2, "cc"> + [2] #191.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x12, size 2, "bb"> + [3] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1c, type 8, 29[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20, type 8, 33[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <2 (0x2)> + [1] #194.1.2.array +IP: #186:0x25, type 8, 38[6] +GC: --#192.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2c, type 8, 45[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x30, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array +IP: #186:0x32, type 8, 51[6] +GC: --#193.1.1.mem.str.ro +GC: --#186.1.5.mem.ro +GC: --#197.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x3d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <1 (0x1)> + [1] #194.1.2.array +IP: #186:0x3e, type 8, 63[6] +GC: --#191.1.1.mem.str.ro +GC: --#186.1.4.mem.ro +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x45, type 8, 70[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x49, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x4a, type 8, 75[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0049_delete_string/basic.log.ref b/tests/0049_delete_string/basic.log.ref new file mode 100644 index 0000000..dc6eea0 --- /dev/null +++ b/tests/0049_delete_string/basic.log.ref @@ -0,0 +1,130 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abcdef"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "xyz123"> + [1] #xxxx.1.1.mem.ref +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.2.mem.str diff --git a/tests/0049_delete_string/code.log.ref b/tests/0049_delete_string/code.log.ref new file mode 100644 index 0000000..7f7065a --- /dev/null +++ b/tests/0049_delete_string/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 3 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 int 21 2 + 7 0x00023 word 68 64 65 6c 65 74 65 delete + 4 8 0x0002a word 38 66 6f 6f foo + 9 0x0002e int 01 0 + 10 0x0002f word 68 64 65 6c 65 74 65 delete + 6 11 0x00036 ref 39 62 61 72 /bar + 12 0x0003a word 68 73 74 72 69 6e 67 string + 13 0x00041 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x00048 word 68 73 74 72 69 6e 67 string + 15 0x0004f word 38 64 65 66 def + 8 16 0x00053 word 38 62 61 72 bar + 17 0x00057 int 01 0 + 18 0x00058 word 68 64 65 6c 65 74 65 delete + 9 19 0x0005f word 38 62 61 72 bar + 20 0x00063 int 81 fe -2 + 21 0x00065 word 68 64 65 6c 65 74 65 delete + 11 22 0x0006c word 38 66 6f 6f foo + 12 23 0x00070 word 38 62 61 72 bar diff --git a/tests/0049_delete_string/code1.log.ref b/tests/0049_delete_string/code1.log.ref new file mode 100644 index 0000000..bd43ddd --- /dev/null +++ b/tests/0049_delete_string/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 3 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 int 21 2 + 7 0x00023 word 68 64 65 6c 65 74 65 delete + 4 8 0x0002a xref 84 0c foo + 9 0x0002c int 01 0 + 10 0x0002d xref 84 0a delete + 6 11 0x0002f ref 39 62 61 72 /bar + 12 0x00033 xref 84 20 string + 13 0x00035 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x0003c xref 84 29 string + 15 0x0003e xref 84 24 def + 8 16 0x00040 word 38 62 61 72 bar + 17 0x00044 int 01 0 + 18 0x00045 xref 84 22 delete + 9 19 0x00047 xref 74 bar + 20 0x00048 int 81 fe -2 + 21 0x0004a xref 84 27 delete + 11 22 0x0004c xref 84 2e foo + 12 23 0x0004e xref 84 0e bar diff --git a/tests/0049_delete_string/code2.log.ref b/tests/0049_delete_string/code2.log.ref new file mode 100644 index 0000000..f3554cf --- /dev/null +++ b/tests/0049_delete_string/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 3 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a int 21 2 + 7 0x0001b prim 83 14 delete + 4 8 0x0001d xref 74 foo + 9 0x0001e int 01 0 + 10 0x0001f prim 83 14 delete + 6 11 0x00021 ref 39 62 61 72 /bar + 12 0x00025 prim 83 11 string + 13 0x00027 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x0002e prim 83 11 string + 15 0x00030 prim 63 def + 8 16 0x00031 word 38 62 61 72 bar + 17 0x00035 int 01 0 + 18 0x00036 prim 83 14 delete + 9 19 0x00038 xref 74 bar + 20 0x00039 int 81 fe -2 + 21 0x0003b prim 83 14 delete + 11 22 0x0003d xref 84 27 foo + 12 23 0x0003f xref 84 0e bar diff --git a/tests/0049_delete_string/main.gs b/tests/0049_delete_string/main.gs new file mode 100644 index 0000000..b03780d --- /dev/null +++ b/tests/0049_delete_string/main.gs @@ -0,0 +1,12 @@ +/foo "abcdef" string def + +foo 2 delete +foo 0 delete + +/bar string "xyz123" string def + +bar 0 delete +bar -2 delete + +foo +bar diff --git a/tests/0049_delete_string/mem.log.ref b/tests/0049_delete_string/mem.log.ref new file mode 100644 index 0000000..0d357b2 --- /dev/null +++ b/tests/0049_delete_string/mem.log.ref @@ -0,0 +1,774 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 116] + 8: 187.01, 0x001d6ae8[ 72] + 9: 188.01, 0x001d6b38[ 56] + 10: 191.01, 0x001d6b78[ 8] + 11: 192.01, 0x001d6b88[ 72] + 12: 0.00, 0x001d6bd8[ 4] + 13: 198.01, 0x001d6be4[ 8] + 14: 199.01, 0x001d6bf4[ 4] + 15: 0.00, 0x001d6c00[14849024] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #199.1.1.mem.ref => #198.1.2.mem.str + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.2.mem.str + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 64 65 66 68 73 74 72 69 6e 67 38 64 65 66 38 66 defhstring8def8f + 6f 6f 21 68 64 65 6c 65 74 65 38 66 6f 6f 01 68 oo!hdelete8foo.h + 64 65 6c 65 74 65 39 62 61 72 68 73 74 72 69 6e delete9barhstrin + 67 67 78 79 7a 31 32 33 68 73 74 72 69 6e 67 38 ggxyz123hstring8 + 64 65 66 38 62 61 72 01 68 64 65 6c 65 74 65 38 def8bar.hdelete8 + 62 61 72 81 fe 68 64 65 6c 65 74 65 38 66 6f 6f bar..hdelete8foo + 38 62 61 72 8bar + #187.1.1.array + [ 0] #191.1.2.mem.str + [ 1] #198.1.2.mem.str + #188.1.1.ctx.func + type 17, ip 0x74 (0x74) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.2.mem.str + 62 64 65 66 bdef + #192.1.1.array + #198.1.2.mem.str + 79 7a 31 33 yz13 + #199.1.1.mem.ref + 62 61 72 bar diff --git a/tests/0049_delete_string/screen.log.ref b/tests/0049_delete_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0049_delete_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0049_delete_string/trace.log.ref b/tests/0049_delete_string/trace.log.ref new file mode 100644 index 0000000..74a798b --- /dev/null +++ b/tests/0049_delete_string/trace.log.ref @@ -0,0 +1,154 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abcdef"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <2 (0x2)> + [1] #191.1.2.mem.str +IP: #186:0x23, type 8, 36[6] +GC: --#193.1.1.num.int +GC: --#191.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2a, type 8, 43[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x2e, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #191.1.2.mem.str +IP: #186:0x2f, type 8, 48[6] +GC: --#194.1.1.num.int +GC: --#191.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x36, type 9, 55[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x37, size 3, "bar"> +IP: #186:0x3a, type 8, 59[6] +GC: --#195.1.1.mem.ref.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref +IP: #186:0x41, type 7, 66[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x42, size 6, "xyz123"> + [1] #196.1.1.mem.ref +IP: #186:0x48, type 8, 73[6] +GC: --#197.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str + [1] #196.1.1.mem.ref +IP: #186:0x4f, type 8, 80[3] +GC: ++#198.1.1.mem.str +GC: --#196.1.1.mem.ref +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x53, type 8, 84[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str +IP: #186:0x57, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #198.1.2.mem.str +IP: #186:0x58, type 8, 89[6] +GC: --#200.1.1.num.int +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x5f, type 8, 96[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str +IP: #186:0x63, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #198.1.2.mem.str +IP: #186:0x65, type 8, 102[6] +GC: --#201.1.1.num.int +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6c, type 8, 109[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x70, type 8, 113[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str + [1] #191.1.2.mem.str diff --git a/tests/0050_parent/basic.log.ref b/tests/0050_parent/basic.log.ref new file mode 100644 index 0000000..e43ad34 --- /dev/null +++ b/tests/0050_parent/basic.log.ref @@ -0,0 +1,211 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <88 (0x58)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [1] #xxxx.1.1.num.int <88 (0x58)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [2] #xxxx.1.1.num.int <88 (0x58)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash + [3] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.hash diff --git a/tests/0050_parent/code.log.ref b/tests/0050_parent/code.log.ref new file mode 100644 index 0000000..82c58ef --- /dev/null +++ b/tests/0050_parent/code.log.ref @@ -0,0 +1,40 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 word 38 64 65 66 def + 5 19 0x00039 word 38 66 6f 6f foo + 7 20 0x0003d word 38 66 6f 6f foo + 21 0x00041 word 38 62 61 72 bar + 22 0x00045 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 9 23 0x0004f word 38 66 6f 6f foo + 24 0x00053 word 98 67 65 74 70 61 72 65 getparent + 6e 74 + 11 25 0x0005d word 38 66 6f 6f foo + 26 0x00061 nil 00 nil + 27 0x00062 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 13 28 0x0006c word 38 66 6f 6f foo + 29 0x00070 word 98 67 65 74 70 61 72 65 getparent + 6e 74 diff --git a/tests/0050_parent/code1.log.ref b/tests/0050_parent/code1.log.ref new file mode 100644 index 0000000..6fcf4a5 --- /dev/null +++ b/tests/0050_parent/code1.log.ref @@ -0,0 +1,38 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 xref 84 16 def + 5 19 0x00037 word 38 66 6f 6f foo + 7 20 0x0003b xref 44 foo + 21 0x0003c word 38 62 61 72 bar + 22 0x00040 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 9 23 0x0004a xref 84 13 foo + 24 0x0004c word 98 67 65 74 70 61 72 65 getparent + 6e 74 + 11 25 0x00056 xref 84 1f foo + 26 0x00058 nil 00 nil + 27 0x00059 xref 84 19 setparent + 13 28 0x0005b xref 84 24 foo + 29 0x0005d xref 84 11 getparent diff --git a/tests/0050_parent/code2.log.ref b/tests/0050_parent/code2.log.ref new file mode 100644 index 0000000..2d54533 --- /dev/null +++ b/tests/0050_parent/code2.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 3 11 0x0001e ref 39 62 61 72 /bar + 12 0x00022 prim 43 ( + 13 0x00023 str 27 78 78 "xx" + 14 0x00026 int 81 58 88 + 15 0x00028 str 27 79 79 "yy" + 16 0x0002b int 81 63 99 + 17 0x0002d prim 53 ) + 18 0x0002e prim 63 def + 5 19 0x0002f word 38 66 6f 6f foo + 7 20 0x00033 xref 44 foo + 21 0x00034 word 38 62 61 72 bar + 22 0x00038 prim 83 35 setparent + 9 23 0x0003a xref 84 0b foo + 24 0x0003c prim 83 34 getparent + 11 25 0x0003e xref 84 0f foo + 26 0x00040 nil 00 nil + 27 0x00041 prim 83 35 setparent + 13 28 0x00043 xref 84 14 foo + 29 0x00045 prim 83 34 getparent diff --git a/tests/0050_parent/main.gs b/tests/0050_parent/main.gs new file mode 100644 index 0000000..faa5697 --- /dev/null +++ b/tests/0050_parent/main.gs @@ -0,0 +1,13 @@ + +/foo ( "aa" 11 "bb" 22 "cc" 33 ) def +/bar ( "xx" 88 "yy" 99 ) def + +foo + +foo bar setparent + +foo getparent + +foo nil setparent + +foo getparent diff --git a/tests/0050_parent/mem.log.ref b/tests/0050_parent/mem.log.ref new file mode 100644 index 0000000..a458e26 --- /dev/null +++ b/tests/0050_parent/mem.log.ref @@ -0,0 +1,789 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 124] + 8: 187.01, 0x001d6af0[ 72] + 9: 188.01, 0x001d6b40[ 56] + 10: 196.01, 0x001d6b80[ 36] + 11: 202.01, 0x001d6bac[ 28] + 12: 0.00, 0x001d6bd0[14849072] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> => #202.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 38 a..'bb..'cc.!.)8 + 64 65 66 39 62 61 72 18 28 27 78 78 81 58 27 79 def9bar.('xx.X'y + 79 81 63 18 29 38 64 65 66 38 66 6f 6f 38 66 6f y.c.)8def8foo8fo + 6f 38 62 61 72 98 73 65 74 70 61 72 65 6e 74 38 o8bar.setparent8 + 66 6f 6f 98 67 65 74 70 61 72 65 6e 74 38 66 6f foo.getparent8fo + 6f 00 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f o..setparent8foo + 98 67 65 74 70 61 72 65 6e 74 .getparent + #187.1.1.array + [ 0] #196.1.2.hash + [ 1] #202.1.2.hash + [ 2] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0x7a (0x7a) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.1.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.1.num.int <33 (0x21)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.1.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> => #195.1.1.num.int <33 (0x21)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> + 62 61 72 bar + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + 78 78 xx + #199.1.1.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + 79 79 yy + #201.1.1.num.int <99 (0x63)> + #202.1.2.hash + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> => #199.1.1.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> => #201.1.1.num.int <99 (0x63)> diff --git a/tests/0050_parent/screen.log.ref b/tests/0050_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0050_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0050_parent/trace.log.ref b/tests/0050_parent/trace.log.ref new file mode 100644 index 0000000..8a33c06 --- /dev/null +++ b/tests/0050_parent/trace.log.ref @@ -0,0 +1,241 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x29, type 7, 42[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2c, type 1, 88 (0x58) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <88 (0x58)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2e, type 7, 47[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [1] #199.1.1.num.int <88 (0x58)> + [2] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x31, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <99 (0x63)> + [1] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [2] #199.1.1.num.int <88 (0x58)> + [3] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x33, type 8, 52[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x35, type 8, 54[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x3d, type 8, 62[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x41, type 8, 66[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.3.hash + [2] #196.1.3.hash +IP: #186:0x45, type 8, 70[9] +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x4f, type 8, 80[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x53, type 8, 84[9] +GC: --#196.1.3.hash +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #196.1.2.hash +IP: #186:0x5d, type 8, 94[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.3.hash + [2] #196.1.3.hash +IP: #186:0x61, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #196.1.3.hash + [2] #202.1.3.hash + [3] #196.1.3.hash +IP: #186:0x62, type 8, 99[9] +GC: --#202.1.3.hash +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.2.hash +IP: #186:0x6c, type 8, 109[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.2.hash + [2] #196.1.3.hash +IP: #186:0x70, type 8, 113[9] +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #202.1.2.hash + [2] #196.1.2.hash diff --git a/tests/0051_hash_parent/basic.log.ref b/tests/0051_hash_parent/basic.log.ref new file mode 100644 index 0000000..e0b635c --- /dev/null +++ b/tests/0051_hash_parent/basic.log.ref @@ -0,0 +1,400 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <88 (0x58)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [1] #xxxx.1.1.num.int <88 (0x58)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [2] #xxxx.1.1.num.int <88 (0x58)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "xx"> + [1] #xxxx.1.3.hash + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +GC: --#xxxx.1.4.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.hash + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.4.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [1] #xxxx.1.4.hash + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.4.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.4.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.hash + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.4.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "xyz"> + [1] #xxxx.1.4.hash + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.4.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.4.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #0.0.nil + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash + [2] #0.0.nil + [3] #xxxx.1.2.num.int <11 (0xb)> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.num.int <88 (0x58)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.2.hash diff --git a/tests/0051_hash_parent/code.log.ref b/tests/0051_hash_parent/code.log.ref new file mode 100644 index 0000000..021440a --- /dev/null +++ b/tests/0051_hash_parent/code.log.ref @@ -0,0 +1,56 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 word 38 64 65 66 def + 5 19 0x00039 word 38 66 6f 6f foo + 20 0x0003d word 38 62 61 72 bar + 21 0x00041 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 7 22 0x0004b word 38 66 6f 6f foo + 9 23 0x0004f word 38 66 6f 6f foo + 24 0x00053 str 27 62 62 "bb" + 25 0x00056 word 38 67 65 74 get + 10 26 0x0005a word 38 66 6f 6f foo + 27 0x0005e str 37 61 62 63 "abc" + 28 0x00062 word 38 67 65 74 get + 11 29 0x00066 word 38 66 6f 6f foo + 30 0x0006a str 27 78 78 "xx" + 31 0x0006d word 38 67 65 74 get + 14 32 0x00071 word 38 62 61 72 bar + 33 0x00075 word 38 66 6f 6f foo + 34 0x00079 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 16 35 0x00083 word 38 66 6f 6f foo + 36 0x00087 str 27 63 63 "cc" + 37 0x0008a word 38 67 65 74 get + 17 38 0x0008e word 38 62 61 72 bar + 39 0x00092 str 27 61 61 "aa" + 40 0x00095 word 38 67 65 74 get + 18 41 0x00099 word 38 66 6f 6f foo + 42 0x0009d str 37 78 79 7a "xyz" + 43 0x000a1 word 38 67 65 74 get + 21 44 0x000a5 word 38 62 61 72 bar + 45 0x000a9 nil 00 nil + 46 0x000aa word 98 73 65 74 70 61 72 65 setparent + 6e 74 diff --git a/tests/0051_hash_parent/code1.log.ref b/tests/0051_hash_parent/code1.log.ref new file mode 100644 index 0000000..d17db47 --- /dev/null +++ b/tests/0051_hash_parent/code1.log.ref @@ -0,0 +1,54 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 xref 84 16 def + 5 19 0x00037 word 38 66 6f 6f foo + 20 0x0003b word 38 62 61 72 bar + 21 0x0003f word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 7 22 0x00049 xref 84 12 foo + 9 23 0x0004b xref 84 14 foo + 24 0x0004d xref 84 3a "bb" + 25 0x0004f word 38 67 65 74 get + 10 26 0x00053 xref 84 1c foo + 27 0x00055 str 37 61 62 63 "abc" + 28 0x00059 xref 84 0a get + 11 29 0x0005b xref 84 24 foo + 30 0x0005d xref 84 34 "xx" + 31 0x0005f xref 84 10 get + 14 32 0x00061 xref 84 26 bar + 33 0x00063 xref 84 2c foo + 34 0x00065 xref 84 26 setparent + 16 35 0x00067 xref 84 30 foo + 36 0x00069 xref 84 51 "cc" + 37 0x0006b xref 84 1c get + 17 38 0x0006d xref 84 32 bar + 39 0x0006f xref 84 61 "aa" + 40 0x00071 xref 84 22 get + 18 41 0x00073 xref 84 3c foo + 42 0x00075 str 37 78 79 7a "xyz" + 43 0x00079 xref 84 2a get + 21 44 0x0007b xref 84 40 bar + 45 0x0007d nil 00 nil + 46 0x0007e xref 84 3f setparent diff --git a/tests/0051_hash_parent/code2.log.ref b/tests/0051_hash_parent/code2.log.ref new file mode 100644 index 0000000..0f34e1e --- /dev/null +++ b/tests/0051_hash_parent/code2.log.ref @@ -0,0 +1,53 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 3 11 0x0001e ref 39 62 61 72 /bar + 12 0x00022 prim 43 ( + 13 0x00023 str 27 78 78 "xx" + 14 0x00026 int 81 58 88 + 15 0x00028 str 27 79 79 "yy" + 16 0x0002b int 81 63 99 + 17 0x0002d prim 53 ) + 18 0x0002e prim 63 def + 5 19 0x0002f word 38 66 6f 6f foo + 20 0x00033 word 38 62 61 72 bar + 21 0x00037 prim 83 35 setparent + 7 22 0x00039 xref 84 0a foo + 9 23 0x0003b xref 84 0c foo + 24 0x0003d xref 84 2b "bb" + 25 0x0003f prim 83 12 get + 10 26 0x00041 xref 84 12 foo + 27 0x00043 str 37 61 62 63 "abc" + 28 0x00047 prim 83 12 get + 11 29 0x00049 xref 84 1a foo + 30 0x0004b xref 84 28 "xx" + 31 0x0004d prim 83 12 get + 14 32 0x0004f xref 84 1c bar + 33 0x00051 xref 84 22 foo + 34 0x00053 prim 83 35 setparent + 16 35 0x00055 xref 84 26 foo + 36 0x00057 xref 84 40 "cc" + 37 0x00059 prim 83 12 get + 17 38 0x0005b xref 84 28 bar + 39 0x0005d xref 84 50 "aa" + 40 0x0005f prim 83 12 get + 18 41 0x00061 xref 84 32 foo + 42 0x00063 str 37 78 79 7a "xyz" + 43 0x00067 prim 83 12 get + 21 44 0x00069 xref 84 36 bar + 45 0x0006b nil 00 nil + 46 0x0006c prim 83 35 setparent diff --git a/tests/0051_hash_parent/main.gs b/tests/0051_hash_parent/main.gs new file mode 100644 index 0000000..6cc79a7 --- /dev/null +++ b/tests/0051_hash_parent/main.gs @@ -0,0 +1,21 @@ + +/foo ( "aa" 11 "bb" 22 "cc" 33 ) def +/bar ( "xx" 88 "yy" 99 ) def + +foo bar setparent + +foo + +foo "bb" get +foo "abc" get +foo "xx" get + +# contruct loop +bar foo setparent + +foo "cc" get +bar "aa" get +foo "xyz" get + +# break loop for gc +bar nil setparent diff --git a/tests/0051_hash_parent/mem.log.ref b/tests/0051_hash_parent/mem.log.ref new file mode 100644 index 0000000..320cc91 --- /dev/null +++ b/tests/0051_hash_parent/mem.log.ref @@ -0,0 +1,799 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 180] + 8: 187.01, 0x001d6b28[ 72] + 9: 188.01, 0x001d6b78[ 56] + 10: 196.01, 0x001d6bb8[ 36] + 11: 202.01, 0x001d6be4[ 28] + 12: 204.01, 0x001d6c08[ 72] + 13: 0.00, 0x001d6c58[14848936] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> => #202.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 38 a..'bb..'cc.!.)8 + 64 65 66 39 62 61 72 18 28 27 78 78 81 58 27 79 def9bar.('xx.X'y + 79 81 63 18 29 38 64 65 66 38 66 6f 6f 38 62 61 y.c.)8def8foo8ba + 72 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 38 r.setparent8foo8 + 66 6f 6f 27 62 62 38 67 65 74 38 66 6f 6f 37 61 foo'bb8get8foo7a + 62 63 38 67 65 74 38 66 6f 6f 27 78 78 38 67 65 bc8get8foo'xx8ge + 74 38 62 61 72 38 66 6f 6f 98 73 65 74 70 61 72 t8bar8foo.setpar + 65 6e 74 38 66 6f 6f 27 63 63 38 67 65 74 38 62 ent8foo'cc8get8b + 61 72 27 61 61 38 67 65 74 38 66 6f 6f 37 78 79 ar'aa8get8foo7xy + 7a 38 67 65 74 38 62 61 72 00 98 73 65 74 70 61 z8get8bar..setpa + 72 65 6e 74 rent + #187.1.1.array + [ 0] #196.1.2.hash + [ 1] #193.1.2.num.int <22 (0x16)> + [ 2] #0.0.nil + [ 3] #199.1.2.num.int <88 (0x58)> + [ 4] #195.1.2.num.int <33 (0x21)> + [ 5] #191.1.2.num.int <11 (0xb)> + [ 6] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0xb4 (0xb4) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.2.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.2.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.2.num.int <33 (0x21)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.2.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.2.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> => #195.1.2.num.int <33 (0x21)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> + 62 61 72 bar + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + 78 78 xx + #199.1.2.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + 79 79 yy + #201.1.1.num.int <99 (0x63)> + #202.1.2.hash + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> => #199.1.2.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> => #201.1.1.num.int <99 (0x63)> + #204.1.1.array diff --git a/tests/0051_hash_parent/screen.log.ref b/tests/0051_hash_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0051_hash_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0051_hash_parent/trace.log.ref b/tests/0051_hash_parent/trace.log.ref new file mode 100644 index 0000000..897a3db --- /dev/null +++ b/tests/0051_hash_parent/trace.log.ref @@ -0,0 +1,447 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x29, type 7, 42[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2c, type 1, 88 (0x58) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <88 (0x58)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2e, type 7, 47[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [1] #199.1.1.num.int <88 (0x58)> + [2] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x31, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <99 (0x63)> + [1] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [2] #199.1.1.num.int <88 (0x58)> + [3] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x33, type 8, 52[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x35, type 8, 54[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x3d, type 8, 62[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.2.hash +IP: #186:0x41, type 8, 66[9] +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4b, type 8, 76[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x4f, type 8, 80[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x53, type 7, 84[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x54, size 2, "bb"> + [1] #196.1.3.hash + [2] #196.1.3.hash +IP: #186:0x56, type 8, 87[3] +GC: ++#193.1.1.num.int +GC: --#203.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <22 (0x16)> + [1] #196.1.2.hash +IP: #186:0x5a, type 8, 91[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #193.1.2.num.int <22 (0x16)> + [2] #196.1.3.hash +IP: #186:0x5e, type 7, 95[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5f, size 3, "abc"> + [1] #196.1.3.hash + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x62, type 8, 99[3] +GC: --#205.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.2.num.int <22 (0x16)> + [2] #196.1.2.hash +IP: #186:0x66, type 8, 103[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x6a, type 7, 107[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x6b, size 2, "xx"> + [1] #196.1.3.hash + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.3.hash +IP: #186:0x6d, type 8, 110[3] +GC: ++#199.1.1.num.int +GC: --#206.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.2.hash +IP: #186:0x71, type 8, 114[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.2.hash +IP: #186:0x75, type 8, 118[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.3.hash + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x79, type 8, 122[9] +GC: ++#196.1.3.hash +GC: --#196.1.4.hash +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x83, type 8, 132[3] +GC: ++#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.4.hash + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.4.hash +IP: #186:0x87, type 7, 136[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x88, size 2, "cc"> + [1] #196.1.4.hash + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.4.hash +IP: #186:0x8a, type 8, 139[3] +GC: ++#195.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.4.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.3.hash +IP: #186:0x8e, type 8, 143[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x92, type 7, 147[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x93, size 2, "aa"> + [1] #202.1.3.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.3.hash +IP: #186:0x95, type 8, 150[3] +GC: ++#191.1.1.num.int +GC: --#208.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <11 (0xb)> + [1] #195.1.2.num.int <33 (0x21)> + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x99, type 8, 154[3] +GC: ++#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.4.hash + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.4.hash +IP: #186:0x9d, type 7, 158[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x9e, size 3, "xyz"> + [1] #196.1.4.hash + [2] #191.1.2.num.int <11 (0xb)> + [3] #195.1.2.num.int <33 (0x21)> + [4] #199.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #193.1.2.num.int <22 (0x16)> + [7] #196.1.4.hash +IP: #186:0xa1, type 8, 162[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.4.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.3.hash +IP: #186:0xa5, type 8, 166[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #0.0.nil + [2] #191.1.2.num.int <11 (0xb)> + [3] #195.1.2.num.int <33 (0x21)> + [4] #199.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #193.1.2.num.int <22 (0x16)> + [7] #196.1.3.hash +IP: #186:0xa9, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #202.1.3.hash + [2] #0.0.nil + [3] #191.1.2.num.int <11 (0xb)> + [4] #195.1.2.num.int <33 (0x21)> + [5] #199.1.2.num.int <88 (0x58)> + [6] #0.0.nil + [7] #193.1.2.num.int <22 (0x16)> + [8] #196.1.3.hash +IP: #186:0xaa, type 8, 171[9] +GC: --#196.1.3.hash +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.2.hash diff --git a/tests/0052_dict/basic.log.ref b/tests/0052_dict/basic.log.ref new file mode 100644 index 0000000..c9ecd32 --- /dev/null +++ b/tests/0052_dict/basic.log.ref @@ -0,0 +1,220 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_0"> + [1] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_0"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_1"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar_2"> + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar_2"> + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.2.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +error 1 (invalid code), ip = #186 diff --git a/tests/0052_dict/code.log.ref b/tests/0052_dict/code.log.ref new file mode 100644 index 0000000..42e9792 --- /dev/null +++ b/tests/0052_dict/code.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 78 67 65 74 64 69 63 74 getdict + 3 2 0x00010 ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00016 int 81 63 99 + 4 0x00018 word 38 64 65 66 def + 5 5 0x0001c ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00022 code 96 { + 6 7 0x00023 word 78 67 65 74 64 69 63 74 getdict + 7 8 0x0002b prim 13 } + 9 0x0002c word 38 64 65 66 def + 9 10 0x00030 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00036 code c6 2f { + 10 12 0x00038 word 18 28 ( + 13 0x0003a word 18 29 ) + 14 0x0003c word 78 73 65 74 64 69 63 74 setdict + 11 15 0x00044 ref 59 62 61 72 5f 32 /bar_2 + 16 0x0004a code 36 { + 12 17 0x0004b int 81 0b 11 + 13 18 0x0004d prim 13 } + 19 0x0004e word 38 64 65 66 def + 14 20 0x00052 word 78 67 65 74 64 69 63 74 getdict + 15 21 0x0005a word 58 62 61 72 5f 32 bar_2 + 16 22 0x00060 word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00066 prim 13 } + 24 0x00067 word 38 64 65 66 def + 19 25 0x0006b word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x00071 word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00077 word 58 62 61 72 5f 32 bar_2 diff --git a/tests/0052_dict/code1.log.ref b/tests/0052_dict/code1.log.ref new file mode 100644 index 0000000..ddc666e --- /dev/null +++ b/tests/0052_dict/code1.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 78 67 65 74 64 69 63 74 getdict + 3 2 0x00010 ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00016 int 81 63 99 + 4 0x00018 word 38 64 65 66 def + 5 5 0x0001c ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00022 code 36 { + 6 7 0x00023 xref 84 1b getdict + 7 8 0x00025 prim 13 } + 9 0x00026 xref 84 0e def + 9 10 0x00028 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x0002e code c6 27 { + 10 12 0x00030 word 18 28 ( + 13 0x00032 word 18 29 ) + 14 0x00034 word 78 73 65 74 64 69 63 74 setdict + 11 15 0x0003c ref 59 62 61 72 5f 32 /bar_2 + 16 0x00042 code 36 { + 12 17 0x00043 int 81 0b 11 + 13 18 0x00045 prim 13 } + 19 0x00046 xref 84 2e def + 14 20 0x00048 xref 84 40 getdict + 15 21 0x0004a word 58 62 61 72 5f 32 bar_2 + 16 22 0x00050 word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00056 prim 13 } + 24 0x00057 xref 84 3f def + 19 25 0x00059 word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x0005f word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00065 xref 84 1b bar_2 diff --git a/tests/0052_dict/code2.log.ref b/tests/0052_dict/code2.log.ref new file mode 100644 index 0000000..3760663 --- /dev/null +++ b/tests/0052_dict/code2.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 36 getdict + 3 2 0x0000a ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00010 int 81 63 99 + 4 0x00012 prim 63 def + 5 5 0x00013 ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00019 code 36 { + 6 7 0x0001a prim 83 36 getdict + 7 8 0x0001c prim 13 } + 9 0x0001d prim 63 def + 9 10 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00024 code c6 1e { + 10 12 0x00026 prim 43 ( + 13 0x00027 prim 53 ) + 14 0x00028 prim 83 37 setdict + 11 15 0x0002a ref 59 62 61 72 5f 32 /bar_2 + 16 0x00030 code 36 { + 12 17 0x00031 int 81 0b 11 + 13 18 0x00033 prim 13 } + 19 0x00034 prim 63 def + 14 20 0x00035 prim 83 36 getdict + 15 21 0x00037 word 58 62 61 72 5f 32 bar_2 + 16 22 0x0003d word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00043 prim 13 } + 24 0x00044 prim 63 def + 19 25 0x00045 word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x0004b word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00051 xref 84 1a bar_2 diff --git a/tests/0052_dict/main.gs b/tests/0052_dict/main.gs new file mode 100644 index 0000000..5bbf8cb --- /dev/null +++ b/tests/0052_dict/main.gs @@ -0,0 +1,21 @@ +getdict + +/foo_0 99 def + +/foo_1 { + getdict +} def + +/foo_2 { + ( ) setdict + /bar_2 { + 11 + } def + getdict + bar_2 + foo_0 +} def + +foo_1 +foo_2 +bar_2 diff --git a/tests/0052_dict/mem.log.ref b/tests/0052_dict/mem.log.ref new file mode 100644 index 0000000..54b794b --- /dev/null +++ b/tests/0052_dict/mem.log.ref @@ -0,0 +1,788 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 128] + 8: 187.01, 0x001d6af4[ 72] + 9: 188.01, 0x001d6b44[ 56] + 10: 0.00, 0x001d6b84[ 56] + 11: 196.01, 0x001d6bc4[ 72] + 12: 198.01, 0x001d6c14[ 140] + 13: 0.00, 0x001d6ca8[14848856] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.3.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x11, size 5, "foo_0"> => #190.1.2.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1d, size 5, "foo_1"> => #192.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x23, size 9> + #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x31, size 5, "foo_2"> => #194.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x38, size 47> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 78 67 65 74 64 69 63 74 uQ..Bz.`xgetdict + 59 66 6f 6f 5f 30 81 63 38 64 65 66 59 66 6f 6f Yfoo_0.c8defYfoo + 5f 31 96 78 67 65 74 64 69 63 74 13 38 64 65 66 _1.xgetdict.8def + 59 66 6f 6f 5f 32 c6 2f 18 28 18 29 78 73 65 74 Yfoo_2./.(.)xset + 64 69 63 74 59 62 61 72 5f 32 36 81 0b 13 38 64 dictYbar_26...8d + 65 66 78 67 65 74 64 69 63 74 58 62 61 72 5f 32 efxgetdictXbar_2 + 58 66 6f 6f 5f 30 13 38 64 65 66 58 66 6f 6f 5f Xfoo_0.8defXfoo_ + 31 58 66 6f 6f 5f 32 58 62 61 72 5f 32 1Xfoo_2Xbar_2 + #187.1.1.array + [ 0] #4.1.3.hash + [ 1] #0.0.nil + [ 2] #198.1.1.hash + [ 3] #202.1.1.num.int <11 (0xb)> + [ 4] #190.1.2.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x7d (0x77) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.3.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x11, size 5, "foo_0"> + 66 6f 6f 5f 30 foo_0 + #190.1.2.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1d, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #192.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x23, size 9> + 78 67 65 74 64 69 63 74 13 xgetdict. + #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x31, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #194.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x38, size 47> + 18 28 18 29 78 73 65 74 64 69 63 74 59 62 61 72 .(.)xsetdictYbar + 5f 32 36 81 0b 13 38 64 65 66 78 67 65 74 64 69 _26...8defxgetdi + 63 74 58 62 61 72 5f 32 58 66 6f 6f 5f 30 13 ctXbar_2Xfoo_0. + #196.1.1.array + #198.1.1.hash + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> => #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> + 62 61 72 5f 32 bar_2 + #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + 81 0b 13 ... + #202.1.1.num.int <11 (0xb)> diff --git a/tests/0052_dict/screen.log.ref b/tests/0052_dict/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0052_dict/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0052_dict/trace.log.ref b/tests/0052_dict/trace.log.ref new file mode 100644 index 0000000..e4ade53 --- /dev/null +++ b/tests/0052_dict/trace.log.ref @@ -0,0 +1,248 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[7] +GC: ++#4.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x10, type 9, 17[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x11, size 5, "foo_0"> + [1] #4.1.3.hash +IP: #186:0x16, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x11, size 5, "foo_0"> + [2] #4.1.3.hash +IP: #186:0x18, type 8, 25[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x1c, type 9, 29[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1d, size 5, "foo_1"> + [1] #4.1.3.hash +IP: #186:0x22, type 6, 35[9] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x23, size 9> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1d, size 5, "foo_1"> + [2] #4.1.3.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x30, type 9, 49[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x31, size 5, "foo_2"> + [1] #4.1.3.hash +IP: #186:0x36, type 6, 56[47] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x38, size 47> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x31, size 5, "foo_2"> + [2] #4.1.3.hash +IP: #186:0x67, type 8, 104[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x6b, type 8, 108[5] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #192:0x0, type 8, 1[7] +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #192:0x8, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #186:0x71, type 8, 114[5] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0x0, type 8, 1[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x2, type 8, 3[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x4, type 8, 5[7] +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0xc, type 9, 13[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x45, size 5, "bar_2"> + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x12, type 6, 19[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + [1] #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> + [2] #0.0.nil + [3] #4.1.3.hash +IP: #194:0x16, type 8, 23[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#200.1.1.mem.code.ro +GC: --#200.1.2.mem.code.ro +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0x1a, type 8, 27[7] +GC: ++#198.1.1.hash +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x22, type 8, 35[5] +GC: ++#200.1.1.mem.code.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #197.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #200:0x0, type 1, 11 (0xb) +== backtrace == + [0] #201.1.1.ctx.func + [1] #197.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <11 (0xb)> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #4.1.3.hash +IP: #200:0x2, type 3, 1 (0x1) +GC: ++#197.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#197.1.2.ctx.func +GC: --#200.1.2.mem.code.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <11 (0xb)> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #4.1.3.hash +IP: #194:0x28, type 8, 41[5] +GC: ++#190.1.1.num.int +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.2.hash + [3] #0.0.nil + [4] #4.1.3.hash +IP: #194:0x2e, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#197.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.1.hash + [3] #0.0.nil + [4] #4.1.3.hash +IP: #186:0x77, type 8, 120[5] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.1.hash + [3] #0.0.nil + [4] #4.1.3.hash +error 1 (invalid code), ip = #186:0x77 diff --git a/tests/0053_freeze/basic.log.ref b/tests/0053_freeze/basic.log.ref new file mode 100644 index 0000000..d65baf7 --- /dev/null +++ b/tests/0053_freeze/basic.log.ref @@ -0,0 +1,215 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> + [4] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [5] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [6] #xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [4] #xxxx.1.2.hash.ro + [5] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [5] #xxxx.1.2.hash.ro + [6] #xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array.ro + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.array.ro + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int.ro <10 (0xa)> + [1] #xxxx.1.2.array.ro + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int.ro <10 (0xa)> + [2] #xxxx.1.2.array.ro + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int.ro <10 (0xa)> + [2] #xxxx.1.2.array.ro + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro diff --git a/tests/0053_freeze/code.log.ref b/tests/0053_freeze/code.log.ref new file mode 100644 index 0000000..158bb1b --- /dev/null +++ b/tests/0053_freeze/code.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 ref 39 62 61 72 /bar + 8 0x0002d word 18 28 ( + 9 0x0002f str 27 61 61 "aa" + 10 0x00032 int 81 0b 11 + 11 0x00034 str 27 62 62 "bb" + 12 0x00037 int 81 16 22 + 13 0x00039 word 18 29 ) + 14 0x0003b word 38 64 65 66 def + 5 15 0x0003f word 38 62 61 72 bar + 16 0x00043 word 68 66 72 65 65 7a 65 freeze + 7 17 0x0004a ref 49 7a 61 70 70 /zapp + 18 0x0004f word 18 5b [ + 19 0x00051 int 11 1 + 20 0x00052 int 21 2 + 21 0x00053 int 31 3 + 22 0x00054 word 18 5d ] + 23 0x00056 word 38 64 65 66 def + 8 24 0x0005a word 48 7a 61 70 70 zapp + 25 0x0005f word 68 66 72 65 65 7a 65 freeze + 10 26 0x00066 int 81 0a 10 + 27 0x00068 word 68 66 72 65 65 7a 65 freeze + 11 28 0x0006f nil 00 nil + 29 0x00070 word 68 66 72 65 65 7a 65 freeze diff --git a/tests/0053_freeze/code1.log.ref b/tests/0053_freeze/code1.log.ref new file mode 100644 index 0000000..9f929dc --- /dev/null +++ b/tests/0053_freeze/code1.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 ref 39 62 61 72 /bar + 8 0x0002d word 18 28 ( + 9 0x0002f str 27 61 61 "aa" + 10 0x00032 int 81 0b 11 + 11 0x00034 str 27 62 62 "bb" + 12 0x00037 int 81 16 22 + 13 0x00039 word 18 29 ) + 14 0x0003b xref 84 21 def + 5 15 0x0003d word 38 62 61 72 bar + 16 0x00041 xref 84 1f freeze + 7 17 0x00043 ref 49 7a 61 70 70 /zapp + 18 0x00048 word 18 5b [ + 19 0x0004a int 11 1 + 20 0x0004b int 21 2 + 21 0x0004c int 31 3 + 22 0x0004d word 18 5d ] + 23 0x0004f xref 84 35 def + 8 24 0x00051 word 48 7a 61 70 70 zapp + 25 0x00056 xref 84 34 freeze + 10 26 0x00058 int 81 0a 10 + 27 0x0005a xref 84 38 freeze + 11 28 0x0005c nil 00 nil + 29 0x0005d xref 84 3b freeze diff --git a/tests/0053_freeze/code2.log.ref b/tests/0053_freeze/code2.log.ref new file mode 100644 index 0000000..eae28f9 --- /dev/null +++ b/tests/0053_freeze/code2.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 2 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a prim 83 38 freeze + 4 7 0x0001c ref 39 62 61 72 /bar + 8 0x00020 prim 43 ( + 9 0x00021 str 27 61 61 "aa" + 10 0x00024 int 81 0b 11 + 11 0x00026 str 27 62 62 "bb" + 12 0x00029 int 81 16 22 + 13 0x0002b prim 53 ) + 14 0x0002c prim 63 def + 5 15 0x0002d word 38 62 61 72 bar + 16 0x00031 prim 83 38 freeze + 7 17 0x00033 ref 49 7a 61 70 70 /zapp + 18 0x00038 prim 23 [ + 19 0x00039 int 11 1 + 20 0x0003a int 21 2 + 21 0x0003b int 31 3 + 22 0x0003c prim 33 ] + 23 0x0003d prim 63 def + 8 24 0x0003e word 48 7a 61 70 70 zapp + 25 0x00043 prim 83 38 freeze + 10 26 0x00045 int 81 0a 10 + 27 0x00047 prim 83 38 freeze + 11 28 0x00049 nil 00 nil + 29 0x0004a prim 83 38 freeze diff --git a/tests/0053_freeze/main.gs b/tests/0053_freeze/main.gs new file mode 100644 index 0000000..e96578b --- /dev/null +++ b/tests/0053_freeze/main.gs @@ -0,0 +1,11 @@ +/foo "abc123" string def +foo freeze + +/bar ( "aa" 11 "bb" 22 ) def +bar freeze + +/zapp [ 1 2 3 ] def +zapp freeze + +10 freeze +nil freeze diff --git a/tests/0053_freeze/mem.log.ref b/tests/0053_freeze/mem.log.ref new file mode 100644 index 0000000..1ea5e37 --- /dev/null +++ b/tests/0053_freeze/mem.log.ref @@ -0,0 +1,794 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 120] + 8: 187.01, 0x001d6aec[ 72] + 9: 188.01, 0x001d6b3c[ 56] + 10: 191.01, 0x001d6b7c[ 8] + 11: 192.01, 0x001d6b8c[ 72] + 12: 198.01, 0x001d6bdc[ 28] + 13: 203.01, 0x001d6c00[ 20] + 14: 0.00, 0x001d6c1c[14848996] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 3, "bar"> => #198.1.2.hash.ro + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.2.mem.str.ro + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> => #203.1.2.array.ro + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 31 32 33 68 73 74 72 69 6e 67 38 64 65 66 38 66 123hstring8def8f + 6f 6f 68 66 72 65 65 7a 65 39 62 61 72 18 28 27 oohfreeze9bar.(' + 61 61 81 0b 27 62 62 81 16 18 29 38 64 65 66 38 aa..'bb...)8def8 + 62 61 72 68 66 72 65 65 7a 65 49 7a 61 70 70 18 barhfreezeIzapp. + 5b 11 21 31 18 5d 38 64 65 66 48 7a 61 70 70 68 [.!1.]8defHzapph + 66 72 65 65 7a 65 81 0a 68 66 72 65 65 7a 65 00 freeze..hfreeze. + 68 66 72 65 65 7a 65 hfreeze + #187.1.1.array + [ 0] #191.1.2.mem.str.ro + [ 1] #198.1.2.hash.ro + [ 2] #203.1.2.array.ro + [ 3] #204.1.1.num.int.ro <10 (0xa)> + [ 4] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0x77 (0x77) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.2.mem.str.ro + 61 62 63 31 32 33 abc123 + #192.1.1.array + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x30, size 2, "aa"> + 61 61 aa + #195.1.1.num.int <11 (0xb)> + #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x35, size 2, "bb"> + 62 62 bb + #197.1.1.num.int <22 (0x16)> + #198.1.2.hash.ro + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x30, size 2, "aa"> => #195.1.1.num.int <11 (0xb)> + #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x35, size 2, "bb"> => #197.1.1.num.int <22 (0x16)> + #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + 7a 61 70 70 zapp + #200.1.1.num.int <1 (0x1)> + #201.1.1.num.int <2 (0x2)> + #202.1.1.num.int <3 (0x3)> + #203.1.2.array.ro + [ 0] #200.1.1.num.int <1 (0x1)> + [ 1] #201.1.1.num.int <2 (0x2)> + [ 2] #202.1.1.num.int <3 (0x3)> + #204.1.1.num.int.ro <10 (0xa)> diff --git a/tests/0053_freeze/screen.log.ref b/tests/0053_freeze/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0053_freeze/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0053_freeze/trace.log.ref b/tests/0053_freeze/trace.log.ref new file mode 100644 index 0000000..248f7ed --- /dev/null +++ b/tests/0053_freeze/trace.log.ref @@ -0,0 +1,245 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abc123"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x29, type 9, 42[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x2a, size 3, "bar"> + [1] #191.1.2.mem.str.ro +IP: #186:0x2d, type 8, 46[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x2a, size 3, "bar"> + [2] #191.1.2.mem.str.ro +IP: #186:0x2f, type 7, 48[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x30, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x2a, size 3, "bar"> + [3] #191.1.2.mem.str.ro +IP: #186:0x32, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <11 (0xb)> + [1] #194.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x30, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x2a, size 3, "bar"> + [4] #191.1.2.mem.str.ro +IP: #186:0x34, type 7, 53[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x35, size 2, "bb"> + [1] #195.1.1.num.int <11 (0xb)> + [2] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x30, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [5] #191.1.2.mem.str.ro +IP: #186:0x37, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <22 (0x16)> + [1] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x35, size 2, "bb"> + [2] #195.1.1.num.int <11 (0xb)> + [3] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x30, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [6] #191.1.2.mem.str.ro +IP: #186:0x39, type 8, 58[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [2] #191.1.2.mem.str.ro +IP: #186:0x3b, type 8, 60[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x3f, type 8, 64[3] +GC: ++#198.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #191.1.2.mem.str.ro +IP: #186:0x43, type 8, 68[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash.ro + [1] #191.1.2.mem.str.ro +IP: #186:0x4a, type 9, 75[4] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x4f, type 8, 80[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x51, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro +IP: #186:0x52, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <2 (0x2)> + [1] #200.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [4] #198.1.2.hash.ro + [5] #191.1.2.mem.str.ro +IP: #186:0x53, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <3 (0x3)> + [1] #201.1.1.num.int <2 (0x2)> + [2] #200.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [5] #198.1.2.hash.ro + [6] #191.1.2.mem.str.ro +IP: #186:0x54, type 8, 85[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x56, type 8, 87[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#203.1.1.array +GC: --#203.1.2.array +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash.ro + [1] #191.1.2.mem.str.ro +IP: #186:0x5a, type 8, 91[4] +GC: ++#203.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.array + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x5f, type 8, 96[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.array.ro + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x66, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <10 (0xa)> + [1] #203.1.2.array.ro + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x68, type 8, 105[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int.ro <10 (0xa)> + [1] #203.1.2.array.ro + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x6f, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #204.1.1.num.int.ro <10 (0xa)> + [2] #203.1.2.array.ro + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro +IP: #186:0x70, type 8, 113[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #204.1.1.num.int.ro <10 (0xa)> + [2] #203.1.2.array.ro + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro diff --git a/tests/0054_freeze_string/basic.log.ref b/tests/0054_freeze_string/basic.log.ref new file mode 100644 index 0000000..300c376 --- /dev/null +++ b/tests/0054_freeze_string/basic.log.ref @@ -0,0 +1,65 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.mem.str.ro + [1] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.3.mem.str.ro + [2] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.3.mem.str.ro + [3] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.3.mem.str.ro + [3] #xxxx.1.3.mem.str.ro +error 12 (readonly), ip = #186 diff --git a/tests/0054_freeze_string/code.log.ref b/tests/0054_freeze_string/code.log.ref new file mode 100644 index 0000000..25a7ced --- /dev/null +++ b/tests/0054_freeze_string/code.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 word 38 66 6f 6f foo + 8 0x0002d int 41 4 + 9 0x0002e int 81 63 'c' + 10 0x00030 word 38 70 75 74 put diff --git a/tests/0054_freeze_string/code1.log.ref b/tests/0054_freeze_string/code1.log.ref new file mode 100644 index 0000000..a4990f5 --- /dev/null +++ b/tests/0054_freeze_string/code1.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 xref 84 0b foo + 8 0x0002b int 41 4 + 9 0x0002c int 81 63 'c' + 10 0x0002e word 38 70 75 74 put diff --git a/tests/0054_freeze_string/code2.log.ref b/tests/0054_freeze_string/code2.log.ref new file mode 100644 index 0000000..f7e7181 --- /dev/null +++ b/tests/0054_freeze_string/code2.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 2 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a prim 83 38 freeze + 4 7 0x0001c xref 64 foo + 8 0x0001d int 41 4 + 9 0x0001e int 81 63 'c' + 10 0x00020 prim 83 13 put diff --git a/tests/0054_freeze_string/main.gs b/tests/0054_freeze_string/main.gs new file mode 100644 index 0000000..ac9b4f1 --- /dev/null +++ b/tests/0054_freeze_string/main.gs @@ -0,0 +1,4 @@ +/foo "abc123" string def +foo freeze + +foo 4 'c' put diff --git a/tests/0054_freeze_string/mem.log.ref b/tests/0054_freeze_string/mem.log.ref new file mode 100644 index 0000000..1cd26bf --- /dev/null +++ b/tests/0054_freeze_string/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 191.01, 0x001d6b38[ 8] + 11: 192.01, 0x001d6b48[ 72] + 12: 0.00, 0x001d6b98[14849128] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.3.mem.str.ro + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 31 32 33 68 73 74 72 69 6e 67 38 64 65 66 38 66 123hstring8def8f + 6f 6f 68 66 72 65 65 7a 65 38 66 6f 6f 41 81 63 oohfreeze8fooA.c + 38 70 75 74 8put + #187.1.1.array + [ 0] #191.1.3.mem.str.ro + [ 1] #191.1.3.mem.str.ro + [ 2] #193.1.1.num.int <4 (0x4)> + [ 3] #194.1.1.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x30) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.3.mem.str.ro + 61 62 63 31 32 33 abc123 + #192.1.1.array + #193.1.1.num.int <4 (0x4)> + #194.1.1.num.int <99 (0x63)> diff --git a/tests/0054_freeze_string/screen.log.ref b/tests/0054_freeze_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0054_freeze_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0054_freeze_string/trace.log.ref b/tests/0054_freeze_string/trace.log.ref new file mode 100644 index 0000000..a200d89 --- /dev/null +++ b/tests/0054_freeze_string/trace.log.ref @@ -0,0 +1,76 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abc123"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x29, type 8, 42[3] +GC: ++#191.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.3.mem.str.ro + [1] #191.1.3.mem.str.ro +IP: #186:0x2d, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4 (0x4)> + [1] #191.1.3.mem.str.ro + [2] #191.1.3.mem.str.ro +IP: #186:0x2e, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <99 (0x63)> + [1] #193.1.1.num.int <4 (0x4)> + [2] #191.1.3.mem.str.ro + [3] #191.1.3.mem.str.ro +IP: #186:0x30, type 8, 49[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <99 (0x63)> + [1] #193.1.1.num.int <4 (0x4)> + [2] #191.1.3.mem.str.ro + [3] #191.1.3.mem.str.ro +error 12 (readonly), ip = #186:0x30 diff --git a/tests/0055_freeze_array/basic.log.ref b/tests/0055_freeze_array/basic.log.ref new file mode 100644 index 0000000..9f0911c --- /dev/null +++ b/tests/0055_freeze_array/basic.log.ref @@ -0,0 +1,85 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array.ro +GC: ++#xxxx.1.2.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array.ro + [1] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.3.array.ro + [2] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.3.array.ro + [3] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.3.array.ro + [3] #xxxx.1.3.array.ro +error 12 (readonly), ip = #186 diff --git a/tests/0055_freeze_array/code.log.ref b/tests/0055_freeze_array/code.log.ref new file mode 100644 index 0000000..6c86e6d --- /dev/null +++ b/tests/0055_freeze_array/code.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d word 18 5b [ + 3 0x0000f int 11 1 + 4 0x00010 int 21 2 + 5 0x00011 int 31 3 + 6 0x00012 word 18 5d ] + 7 0x00014 word 38 64 65 66 def + 2 8 0x00018 word 48 7a 61 70 70 zapp + 9 0x0001d word 68 66 72 65 65 7a 65 freeze + 4 10 0x00024 word 48 7a 61 70 70 zapp + 11 0x00029 int 11 1 + 12 0x0002a int 81 0a 10 + 13 0x0002c word 38 70 75 74 put diff --git a/tests/0055_freeze_array/code1.log.ref b/tests/0055_freeze_array/code1.log.ref new file mode 100644 index 0000000..7eca693 --- /dev/null +++ b/tests/0055_freeze_array/code1.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d word 18 5b [ + 3 0x0000f int 11 1 + 4 0x00010 int 21 2 + 5 0x00011 int 31 3 + 6 0x00012 word 18 5d ] + 7 0x00014 word 38 64 65 66 def + 2 8 0x00018 word 48 7a 61 70 70 zapp + 9 0x0001d word 68 66 72 65 65 7a 65 freeze + 4 10 0x00024 xref 84 0c zapp + 11 0x00026 int 11 1 + 12 0x00027 int 81 0a 10 + 13 0x00029 word 38 70 75 74 put diff --git a/tests/0055_freeze_array/code2.log.ref b/tests/0055_freeze_array/code2.log.ref new file mode 100644 index 0000000..c266e23 --- /dev/null +++ b/tests/0055_freeze_array/code2.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d prim 23 [ + 3 0x0000e int 11 1 + 4 0x0000f int 21 2 + 5 0x00010 int 31 3 + 6 0x00011 prim 33 ] + 7 0x00012 prim 63 def + 2 8 0x00013 word 48 7a 61 70 70 zapp + 9 0x00018 prim 83 38 freeze + 4 10 0x0001a xref 74 zapp + 11 0x0001b int 11 1 + 12 0x0001c int 81 0a 10 + 13 0x0001e prim 83 13 put diff --git a/tests/0055_freeze_array/main.gs b/tests/0055_freeze_array/main.gs new file mode 100644 index 0000000..0259279 --- /dev/null +++ b/tests/0055_freeze_array/main.gs @@ -0,0 +1,4 @@ +/zapp [ 1 2 3 ] def +zapp freeze + +zapp 1 10 put diff --git a/tests/0055_freeze_array/mem.log.ref b/tests/0055_freeze_array/mem.log.ref new file mode 100644 index 0000000..32ab18a --- /dev/null +++ b/tests/0055_freeze_array/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 48] + 8: 187.01, 0x001d6aa4[ 72] + 9: 188.01, 0x001d6af4[ 56] + 10: 193.01, 0x001d6b34[ 20] + 11: 0.00, 0x001d6b50[14849200] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> => #193.1.3.array.ro + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 49 7a 61 70 70 18 5b 11 uQ..Bz.`Izapp.[. + 21 31 18 5d 38 64 65 66 48 7a 61 70 70 68 66 72 !1.]8defHzapphfr + 65 65 7a 65 48 7a 61 70 70 11 81 0a 38 70 75 74 eezeHzapp...8put + #187.1.1.array + [ 0] #193.1.3.array.ro + [ 1] #193.1.3.array.ro + [ 2] #194.1.1.num.int <1 (0x1)> + [ 3] #195.1.1.num.int <10 (0xa)> + #188.1.1.ctx.func + type 17, ip 0x30 (0x2c) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> + 7a 61 70 70 zapp + #190.1.1.num.int <1 (0x1)> + #191.1.1.num.int <2 (0x2)> + #192.1.1.num.int <3 (0x3)> + #193.1.3.array.ro + [ 0] #190.1.1.num.int <1 (0x1)> + [ 1] #191.1.1.num.int <2 (0x2)> + [ 2] #192.1.1.num.int <3 (0x3)> + #194.1.1.num.int <1 (0x1)> + #195.1.1.num.int <10 (0xa)> diff --git a/tests/0055_freeze_array/screen.log.ref b/tests/0055_freeze_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0055_freeze_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0055_freeze_array/trace.log.ref b/tests/0055_freeze_array/trace.log.ref new file mode 100644 index 0000000..6ce35c9 --- /dev/null +++ b/tests/0055_freeze_array/trace.log.ref @@ -0,0 +1,99 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0xd, type 8, 14[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0xf, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x10, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <2 (0x2)> + [1] #190.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x11, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <3 (0x3)> + [1] #191.1.1.num.int <2 (0x2)> + [2] #190.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x12, type 8, 19[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#193.1.1.array +GC: --#193.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 8, 25[4] +GC: ++#193.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.array +IP: #186:0x1d, type 8, 30[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.array.ro +IP: #186:0x24, type 8, 37[4] +GC: ++#193.1.2.array.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.array.ro + [1] #193.1.3.array.ro +IP: #186:0x29, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <1 (0x1)> + [1] #193.1.3.array.ro + [2] #193.1.3.array.ro +IP: #186:0x2a, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <1 (0x1)> + [2] #193.1.3.array.ro + [3] #193.1.3.array.ro +IP: #186:0x2c, type 8, 45[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <1 (0x1)> + [2] #193.1.3.array.ro + [3] #193.1.3.array.ro +error 12 (readonly), ip = #186:0x2c diff --git a/tests/0056_freeze_hash/basic.log.ref b/tests/0056_freeze_hash/basic.log.ref new file mode 100644 index 0000000..88242aa --- /dev/null +++ b/tests/0056_freeze_hash/basic.log.ref @@ -0,0 +1,97 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro +GC: ++#xxxx.1.2.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash.ro + [1] #xxxx.1.3.hash.ro +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.3.hash.ro + [2] #xxxx.1.3.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.3.hash.ro + [3] #xxxx.1.3.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.3.hash.ro + [3] #xxxx.1.3.hash.ro +error 12 (readonly), ip = #186 diff --git a/tests/0056_freeze_hash/code.log.ref b/tests/0056_freeze_hash/code.log.ref new file mode 100644 index 0000000..09ccb85 --- /dev/null +++ b/tests/0056_freeze_hash/code.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 word 18 29 ) + 8 0x0001a word 38 64 65 66 def + 2 9 0x0001e word 38 62 61 72 bar + 10 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 11 0x00029 word 38 62 61 72 bar + 12 0x0002d str 27 62 62 "bb" + 13 0x00030 int 81 21 33 + 14 0x00032 word 38 70 75 74 put diff --git a/tests/0056_freeze_hash/code1.log.ref b/tests/0056_freeze_hash/code1.log.ref new file mode 100644 index 0000000..3fdf314 --- /dev/null +++ b/tests/0056_freeze_hash/code1.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 word 18 29 ) + 8 0x0001a word 38 64 65 66 def + 2 9 0x0001e word 38 62 61 72 bar + 10 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 11 0x00029 xref 84 0b bar + 12 0x0002b xref 84 18 "bb" + 13 0x0002d int 81 21 33 + 14 0x0002f word 38 70 75 74 put diff --git a/tests/0056_freeze_hash/code2.log.ref b/tests/0056_freeze_hash/code2.log.ref new file mode 100644 index 0000000..64a7ee8 --- /dev/null +++ b/tests/0056_freeze_hash/code2.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 prim 53 ) + 8 0x00018 prim 63 def + 2 9 0x00019 word 38 62 61 72 bar + 10 0x0001d prim 83 38 freeze + 4 11 0x0001f xref 64 bar + 12 0x00020 xref 84 0e "bb" + 13 0x00022 int 81 21 33 + 14 0x00024 prim 83 13 put diff --git a/tests/0056_freeze_hash/main.gs b/tests/0056_freeze_hash/main.gs new file mode 100644 index 0000000..f6798f2 --- /dev/null +++ b/tests/0056_freeze_hash/main.gs @@ -0,0 +1,4 @@ +/bar ( "aa" 11 "bb" 22 ) def +bar freeze + +bar "bb" 33 put diff --git a/tests/0056_freeze_hash/mem.log.ref b/tests/0056_freeze_hash/mem.log.ref new file mode 100644 index 0000000..2a313bf --- /dev/null +++ b/tests/0056_freeze_hash/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 194.01, 0x001d6b3c[ 28] + 11: 0.00, 0x001d6b60[14849184] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "bar"> => #194.1.3.hash.ro + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 18 28 27 61 uQ..Bz.`9bar.('a + 61 81 0b 27 62 62 81 16 18 29 38 64 65 66 38 62 a..'bb...)8def8b + 61 72 68 66 72 65 65 7a 65 38 62 61 72 27 62 62 arhfreeze8bar'bb + 81 21 38 70 75 74 .!8put + #187.1.1.array + [ 0] #194.1.3.hash.ro + [ 1] #194.1.3.hash.ro + [ 2] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [ 3] #196.1.1.num.int <33 (0x21)> + #188.1.1.ctx.func + type 17, ip 0x36 (0x32) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "bar"> + 62 61 72 bar + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.1.num.int <22 (0x16)> + #194.1.3.hash.ro + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.1.num.int <22 (0x16)> + #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + 62 62 bb + #196.1.1.num.int <33 (0x21)> diff --git a/tests/0056_freeze_hash/screen.log.ref b/tests/0056_freeze_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0056_freeze_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0056_freeze_hash/trace.log.ref b/tests/0056_freeze_hash/trace.log.ref new file mode 100644 index 0000000..143b5ee --- /dev/null +++ b/tests/0056_freeze_hash/trace.log.ref @@ -0,0 +1,112 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x18, type 8, 25[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash.ro +IP: #186:0x29, type 8, 42[3] +GC: ++#194.1.2.hash.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.3.hash.ro + [1] #194.1.3.hash.ro +IP: #186:0x2d, type 7, 46[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [1] #194.1.3.hash.ro + [2] #194.1.3.hash.ro +IP: #186:0x30, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <33 (0x21)> + [1] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [2] #194.1.3.hash.ro + [3] #194.1.3.hash.ro +IP: #186:0x32, type 8, 51[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <33 (0x21)> + [1] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [2] #194.1.3.hash.ro + [3] #194.1.3.hash.ro +error 12 (readonly), ip = #186:0x32 diff --git a/tests/0057_dict_nil/basic.log.ref b/tests/0057_dict_nil/basic.log.ref new file mode 100644 index 0000000..34e2716 --- /dev/null +++ b/tests/0057_dict_nil/basic.log.ref @@ -0,0 +1,151 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.2.num.int <99 (0x63)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #0.0.nil + [3] #xxxx.1.3.num.int <99 (0x63)> diff --git a/tests/0057_dict_nil/code.log.ref b/tests/0057_dict_nil/code.log.ref new file mode 100644 index 0000000..e3f2dd7 --- /dev/null +++ b/tests/0057_dict_nil/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e word 38 64 65 66 def + 3 4 0x00012 ref 39 62 61 72 /bar + 5 0x00016 code c6 28 { + 4 6 0x00018 word 38 66 6f 6f foo + 6 7 0x0001c word 18 28 ( + 8 0x0001e ref 39 66 6f 6f /foo + 9 0x00022 nil 00 nil + 10 0x00023 word 18 29 ) + 11 0x00025 word 78 73 65 74 64 69 63 74 setdict + 8 12 0x0002d word 38 66 6f 6f foo + 10 13 0x00031 ref 39 66 6f 6f /foo + 14 0x00035 int 81 0b 11 + 15 0x00037 word 38 64 65 66 def + 11 16 0x0003b word 38 66 6f 6f foo + 12 17 0x0003f prim 13 } + 18 0x00040 word 38 64 65 66 def + 14 19 0x00044 word 38 62 61 72 bar + 16 20 0x00048 word 38 66 6f 6f foo diff --git a/tests/0057_dict_nil/code1.log.ref b/tests/0057_dict_nil/code1.log.ref new file mode 100644 index 0000000..a964dd1 --- /dev/null +++ b/tests/0057_dict_nil/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e word 38 64 65 66 def + 3 4 0x00012 ref 39 62 61 72 /bar + 5 0x00016 code c6 1e { + 4 6 0x00018 word 38 66 6f 6f foo + 6 7 0x0001c word 18 28 ( + 8 0x0001e xref 84 16 /foo + 9 0x00020 nil 00 nil + 10 0x00021 word 18 29 ) + 11 0x00023 word 78 73 65 74 64 69 63 74 setdict + 8 12 0x0002b xref 84 13 foo + 10 13 0x0002d xref 84 25 /foo + 14 0x0002f int 81 0b 11 + 15 0x00031 xref 84 23 def + 11 16 0x00033 xref 84 1b foo + 12 17 0x00035 prim 13 } + 18 0x00036 xref 84 28 def + 14 19 0x00038 word 38 62 61 72 bar + 16 20 0x0003c xref 84 24 foo diff --git a/tests/0057_dict_nil/code2.log.ref b/tests/0057_dict_nil/code2.log.ref new file mode 100644 index 0000000..2057cc3 --- /dev/null +++ b/tests/0057_dict_nil/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e prim 63 def + 3 4 0x0000f ref 39 62 61 72 /bar + 5 0x00013 code c6 15 { + 4 6 0x00015 word 38 66 6f 6f foo + 6 7 0x00019 prim 43 ( + 8 0x0001a xref 84 12 /foo + 9 0x0001c nil 00 nil + 10 0x0001d prim 53 ) + 11 0x0001e prim 83 37 setdict + 8 12 0x00020 xref 84 0b foo + 10 13 0x00022 xref 84 1a /foo + 14 0x00024 int 81 0b 11 + 15 0x00026 prim 63 def + 11 16 0x00027 xref 84 12 foo + 12 17 0x00029 prim 13 } + 18 0x0002a prim 63 def + 14 19 0x0002b word 38 62 61 72 bar + 16 20 0x0002f xref 84 1a foo diff --git a/tests/0057_dict_nil/main.gs b/tests/0057_dict_nil/main.gs new file mode 100644 index 0000000..c5a00a1 --- /dev/null +++ b/tests/0057_dict_nil/main.gs @@ -0,0 +1,16 @@ +/foo 99 def + +/bar { + foo + + ( /foo nil ) setdict + + foo + + /foo 11 def + foo +} def + +bar + +foo diff --git a/tests/0057_dict_nil/mem.log.ref b/tests/0057_dict_nil/mem.log.ref new file mode 100644 index 0000000..6b40917 --- /dev/null +++ b/tests/0057_dict_nil/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 0.00, 0x001d6b50[ 84] + 11: 198.01, 0x001d6bac[ 72] + 12: 0.00, 0x001d6bfc[14849028] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> => #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.3.num.int <99 (0x63)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 81 63 38 64 uQ..Bz.`9foo.c8d + 65 66 39 62 61 72 c6 28 38 66 6f 6f 18 28 39 66 ef9bar.(8foo.(9f + 6f 6f 00 18 29 78 73 65 74 64 69 63 74 38 66 6f oo..)xsetdict8fo + 6f 39 66 6f 6f 81 0b 38 64 65 66 38 66 6f 6f 13 o9foo..8def8foo. + 38 64 65 66 38 62 61 72 38 66 6f 6f 8def8bar8foo + #187.1.1.array + [ 0] #190.1.3.num.int <99 (0x63)> + [ 1] #0.0.nil + [ 2] #197.1.1.num.int <11 (0xb)> + [ 3] #190.1.3.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x4c (0x4c) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.3.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> + 62 61 72 bar + #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + 38 66 6f 6f 18 28 39 66 6f 6f 00 18 29 78 73 65 8foo.(9foo..)xse + 74 64 69 63 74 38 66 6f 6f 39 66 6f 6f 81 0b 38 tdict8foo9foo..8 + 64 65 66 38 66 6f 6f 13 def8foo. + #197.1.1.num.int <11 (0xb)> + #198.1.1.array diff --git a/tests/0057_dict_nil/screen.log.ref b/tests/0057_dict_nil/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0057_dict_nil/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0057_dict_nil/trace.log.ref b/tests/0057_dict_nil/trace.log.ref new file mode 100644 index 0000000..2348e33 --- /dev/null +++ b/tests/0057_dict_nil/trace.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 3, "bar"> +IP: #186:0x16, type 6, 24[40] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> +IP: #186:0x40, type 8, 65[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x44, type 8, 69[3] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #192:0x0, type 8, 1[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x4, type 8, 5[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x6, type 9, 7[3] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 3, "foo"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0xa, type 0, 0 (0x0) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 3, "foo"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #190.1.2.num.int <99 (0x63)> +IP: #192:0xb, type 8, 12[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.hash + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0xd, type 8, 14[7] +GC: ++#195.1.1.hash +GC: --#195.1.2.hash +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x15, type 8, 22[3] +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x19, type 9, 26[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x32, size 3, "foo"> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0x1d, type 1, 11 (0xb) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #196.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x32, size 3, "foo"> + [2] #0.0.nil + [3] #190.1.2.num.int <99 (0x63)> +IP: #192:0x1f, type 8, 32[3] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#194.1.1.mem.ref.ro +GC: --#186.1.6.mem.ro +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x23, type 8, 36[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <11 (0xb)> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0x27, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#195.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.2.num.int +GC: --#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #186:0x48, type 8, 73[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <99 (0x63)> + [1] #197.1.1.num.int <11 (0xb)> + [2] #0.0.nil + [3] #190.1.3.num.int <99 (0x63)> diff --git a/tests/0058_def_local/basic.log.ref b/tests/0058_def_local/basic.log.ref new file mode 100644 index 0000000..738b019 --- /dev/null +++ b/tests/0058_def_local/basic.log.ref @@ -0,0 +1,144 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [1] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <11 (0xb)> + [3] #xxxx.1.1.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <11 (0xb)> + [3] #xxxx.1.1.num.int <99 (0x63)> +error 1 (invalid code), ip = #186 diff --git a/tests/0058_def_local/code.log.ref b/tests/0058_def_local/code.log.ref new file mode 100644 index 0000000..41cfc5e --- /dev/null +++ b/tests/0058_def_local/code.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 word 38 64 65 66 def + 3 4 0x00014 ref 39 62 61 72 /bar + 5 0x00018 code c6 2b { + 4 6 0x0001a word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x00020 ref 59 66 6f 6f 5f 31 /foo_1 + 8 0x00026 int 81 0b 11 + 9 0x00028 word 38 64 65 66 def + 7 10 0x0002c ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00032 int 81 16 22 + 12 0x00034 word 38 64 65 66 def + 9 13 0x00038 word 58 66 6f 6f 5f 31 foo_1 + 10 14 0x0003e word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00044 prim 13 } + 16 0x00045 word 38 64 65 66 def + 13 17 0x00049 word 38 62 61 72 bar + 15 18 0x0004d word 58 66 6f 6f 5f 31 foo_1 + 16 19 0x00053 word 58 66 6f 6f 5f 32 foo_2 diff --git a/tests/0058_def_local/code1.log.ref b/tests/0058_def_local/code1.log.ref new file mode 100644 index 0000000..8f4655f --- /dev/null +++ b/tests/0058_def_local/code1.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 word 38 64 65 66 def + 3 4 0x00014 ref 39 62 61 72 /bar + 5 0x00018 code c6 1f { + 4 6 0x0001a word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x00020 xref 84 18 /foo_1 + 8 0x00022 int 81 0b 11 + 9 0x00024 xref 84 14 def + 7 10 0x00026 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x0002c int 81 16 22 + 12 0x0002e xref 84 1e def + 9 13 0x00030 xref 84 16 foo_1 + 10 14 0x00032 word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00038 prim 13 } + 16 0x00039 xref 84 29 def + 13 17 0x0003b word 38 62 61 72 bar + 15 18 0x0003f xref 84 25 foo_1 + 16 19 0x00041 xref 84 0f foo_2 diff --git a/tests/0058_def_local/code2.log.ref b/tests/0058_def_local/code2.log.ref new file mode 100644 index 0000000..9fc9827 --- /dev/null +++ b/tests/0058_def_local/code2.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 prim 63 def + 3 4 0x00011 ref 39 62 61 72 /bar + 5 0x00015 code c6 1d { + 4 6 0x00017 word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x0001d xref 84 15 /foo_1 + 8 0x0001f int 81 0b 11 + 9 0x00021 prim 63 def + 7 10 0x00022 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00028 int 81 16 22 + 12 0x0002a prim 63 def + 9 13 0x0002b xref 84 14 foo_1 + 10 14 0x0002d word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00033 prim 13 } + 16 0x00034 prim 63 def + 13 17 0x00035 word 38 62 61 72 bar + 15 18 0x00039 xref 84 22 foo_1 + 16 19 0x0003b xref 84 0e foo_2 diff --git a/tests/0058_def_local/main.gs b/tests/0058_def_local/main.gs new file mode 100644 index 0000000..00fb76d --- /dev/null +++ b/tests/0058_def_local/main.gs @@ -0,0 +1,16 @@ +/foo_1 99 def + +/bar { + foo_1 + + /foo_1 11 def + /foo_2 22 def + + foo_1 + foo_2 +} def + +bar + +foo_1 +foo_2 \ No newline at end of file diff --git a/tests/0058_def_local/mem.log.ref b/tests/0058_def_local/mem.log.ref new file mode 100644 index 0000000..dd4bf50 --- /dev/null +++ b/tests/0058_def_local/mem.log.ref @@ -0,0 +1,774 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 56] + 11: 196.01, 0x001d6ba0[ 72] + 12: 0.00, 0x001d6bf0[14849040] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> => #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #194.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x21, size 5, "foo_1"> => #195.1.3.num.int <11 (0xb)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 81 63 uQ..Bz.`Yfoo_1.c + 38 64 65 66 39 62 61 72 c6 2b 58 66 6f 6f 5f 31 8def9bar.+Xfoo_1 + 59 66 6f 6f 5f 31 81 0b 38 64 65 66 59 66 6f 6f Yfoo_1..8defYfoo + 5f 32 81 16 38 64 65 66 58 66 6f 6f 5f 31 58 66 _2..8defXfoo_1Xf + 6f 6f 5f 32 13 38 64 65 66 38 62 61 72 58 66 6f oo_2.8def8barXfo + 6f 5f 31 58 66 6f 6f 5f 32 o_1Xfoo_2 + #187.1.1.array + [ 0] #190.1.1.num.int <99 (0x63)> + [ 1] #195.1.3.num.int <11 (0xb)> + [ 2] #198.1.1.num.int <22 (0x16)> + [ 3] #195.1.3.num.int <11 (0xb)> + #188.1.1.ctx.func + type 17, ip 0x59 (0x53) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> + 62 61 72 bar + #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + 58 66 6f 6f 5f 31 59 66 6f 6f 5f 31 81 0b 38 64 Xfoo_1Yfoo_1..8d + 65 66 59 66 6f 6f 5f 32 81 16 38 64 65 66 58 66 efYfoo_2..8defXf + 6f 6f 5f 31 58 66 6f 6f 5f 32 13 oo_1Xfoo_2. + #194.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x21, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #195.1.3.num.int <11 (0xb)> + #196.1.1.array + #198.1.1.num.int <22 (0x16)> diff --git a/tests/0058_def_local/screen.log.ref b/tests/0058_def_local/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0058_def_local/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0058_def_local/trace.log.ref b/tests/0058_def_local/trace.log.ref new file mode 100644 index 0000000..e8420ff --- /dev/null +++ b/tests/0058_def_local/trace.log.ref @@ -0,0 +1,164 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 8, 17[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x14, type 9, 21[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x15, size 3, "bar"> +IP: #186:0x18, type 6, 26[43] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> +IP: #186:0x45, type 8, 70[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[3] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #192:0x0, type 8, 1[5] +GC: ++#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x6, type 9, 7[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x21, size 5, "foo_1"> + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0xc, type 1, 11 (0xb) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <11 (0xb)> + [1] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x21, size 5, "foo_1"> + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0xe, type 8, 15[3] +GC: ++#194.1.1.mem.ref.ro +GC: ++#195.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.5.mem.ro +GC: --#190.1.2.num.int +GC: --#195.1.2.num.int +GC: --#194.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> +IP: #192:0x12, type 9, 19[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2d, size 5, "foo_2"> + [1] #190.1.1.num.int <99 (0x63)> +IP: #192:0x18, type 1, 22 (0x16) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <22 (0x16)> + [1] #197.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2d, size 5, "foo_2"> + [2] #190.1.1.num.int <99 (0x63)> +IP: #192:0x1a, type 8, 27[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#198.1.1.num.int +GC: --#198.1.2.num.int +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> +IP: #192:0x1e, type 8, 31[5] +GC: ++#195.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <11 (0xb)> + [1] #190.1.1.num.int <99 (0x63)> +IP: #192:0x24, type 8, 37[5] +GC: ++#198.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.num.int <22 (0x16)> + [1] #195.1.2.num.int <11 (0xb)> + [2] #190.1.1.num.int <99 (0x63)> +IP: #192:0x2a, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#199.1.1.hash +GC: --#197.1.1.mem.ref.ro +GC: --#198.1.2.num.int +GC: --#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <22 (0x16)> + [1] #195.1.2.num.int <11 (0xb)> + [2] #190.1.1.num.int <99 (0x63)> +IP: #186:0x4d, type 8, 78[5] +GC: ++#195.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <11 (0xb)> + [1] #198.1.1.num.int <22 (0x16)> + [2] #195.1.3.num.int <11 (0xb)> + [3] #190.1.1.num.int <99 (0x63)> +IP: #186:0x53, type 8, 84[5] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <11 (0xb)> + [1] #198.1.1.num.int <22 (0x16)> + [2] #195.1.3.num.int <11 (0xb)> + [3] #190.1.1.num.int <99 (0x63)> +error 1 (invalid code), ip = #186:0x53 diff --git a/tests/0059_lineto/basic.log.ref b/tests/0059_lineto/basic.log.ref new file mode 100644 index 0000000..a44ec04 --- /dev/null +++ b/tests/0059_lineto/basic.log.ref @@ -0,0 +1,4197 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.2.gstate +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16777215 (0xffffff)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "r"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "r"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <60 (0x3c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <60 (0x3c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <60 (0x3c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <60 (0x3c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <260 (0x104)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <260 (0x104)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <260 (0x104)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <260 (0x104)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <260 (0x104)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <260 (0x104)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <160 (0xa0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <160 (0xa0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <160 (0xa0)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <160 (0xa0)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <160 (0xa0)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <160 (0xa0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <360 (0x168)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <360 (0x168)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <360 (0x168)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <360 (0x168)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <360 (0x168)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <360 (0x168)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <160 (0xa0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <160 (0xa0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <160 (0xa0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <160 (0xa0)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <160 (0xa0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <160 (0xa0)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <160 (0xa0)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <360 (0x168)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <360 (0x168)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <100 (0x64)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <100 (0x64)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <100 (0x64)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <100 (0x64)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <100 (0x64)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <100 (0x64)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <300 (0x12c)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <300 (0x12c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <60 (0x3c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <60 (0x3c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <60 (0x3c)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <60 (0x3c)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <60 (0x3c)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <60 (0x3c)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <60 (0x3c)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <260 (0x104)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <260 (0x104)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <0 (0x0)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <0 (0x0)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <140 (0x8c)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <140 (0x8c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <100 (0x64)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <40 (0x28)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <40 (0x28)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <160 (0xa0)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <160 (0xa0)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <160 (0xa0)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <160 (0xa0)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <160 (0xa0)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <160 (0xa0)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <360 (0x168)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <360 (0x168)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <360 (0x168)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <360 (0x168)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <360 (0x168)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <360 (0x168)> + [1] #xxxx.3.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <100 (0x64)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <100 (0x64)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <100 (0x64)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <100 (0x64)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <300 (0x12c)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <300 (0x12c)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <300 (0x12c)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <300 (0x12c)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <300 (0x12c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <300 (0x12c)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <60 (0x3c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <60 (0x3c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <60 (0x3c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <60 (0x3c)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <60 (0x3c)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <60 (0x3c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <260 (0x104)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <260 (0x104)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <260 (0x104)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <260 (0x104)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <260 (0x104)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <260 (0x104)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <0 (0x0)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <0 (0x0)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <0 (0x0)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <0 (0x0)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <140 (0x8c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <140 (0x8c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <140 (0x8c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <140 (0x8c)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <140 (0x8c)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <140 (0x8c)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <100 (0x64)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <100 (0x64)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <100 (0x64)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <100 (0x64)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <100 (0x64)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <40 (0x28)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <40 (0x28)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <40 (0x28)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <40 (0x28)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <40 (0x28)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <40 (0x28)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <40 (0x28)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <40 (0x28)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <100 (0x64)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <100 (0x64)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <140 (0x8c)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <140 (0x8c)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <0 (0x0)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <60 (0x3c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <60 (0x3c)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <60 (0x3c)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <60 (0x3c)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <60 (0x3c)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <60 (0x3c)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <60 (0x3c)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <260 (0x104)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <260 (0x104)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <100 (0x64)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <100 (0x64)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <100 (0x64)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <100 (0x64)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <100 (0x64)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <100 (0x64)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <300 (0x12c)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <300 (0x12c)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <160 (0xa0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <160 (0xa0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <160 (0xa0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <160 (0xa0)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <160 (0xa0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <160 (0xa0)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <160 (0xa0)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <360 (0x168)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <360 (0x168)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <400 (0x190)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <400 (0x190)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [5] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <40 (0x28)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <40 (0x28)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <40 (0x28)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <40 (0x28)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <400 (0x190)> + [1] #xxxx.6.1.num.int <40 (0x28)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <40 (0x28)> + [1] #xxxx.6.1.num.int <400 (0x190)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <4 (0x4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <4 (0x4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [5] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <100 (0x64)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <3 (0x3)> + [1] #xxxx.7.1.num.int <100 (0x64)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <3 (0x3)> + [2] #xxxx.7.1.num.int <100 (0x64)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <100 (0x64)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <400 (0x190)> + [1] #xxxx.7.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <100 (0x64)> + [1] #xxxx.7.1.num.int <400 (0x190)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.7.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <4 (0x4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <4 (0x4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [5] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <140 (0x8c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <3 (0x3)> + [1] #xxxx.7.1.num.int <140 (0x8c)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <3 (0x3)> + [2] #xxxx.7.1.num.int <140 (0x8c)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <140 (0x8c)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <400 (0x190)> + [1] #xxxx.7.1.num.int <140 (0x8c)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <140 (0x8c)> + [1] #xxxx.7.1.num.int <400 (0x190)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.7.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0059_lineto/code.log.ref b/tests/0059_lineto/code.log.ref new file mode 100644 index 0000000..22767b4 --- /dev/null +++ b/tests/0059_lineto/code.log.ref @@ -0,0 +1,225 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 int 81 32 50 + 3 0x00014 int 81 14 20 + 4 0x00016 int 91 90 01 400 + 5 0x00019 int 91 90 01 400 + 6 0x0001c word 98 73 65 74 72 65 67 69 setregion + 6f 6e + 2 7 0x00026 int b1 ff ff ff 00 0x00ffffff + 8 0x0002b word 88 73 65 74 63 6f 6c 6f setcolor + 72 + 5 9 0x00034 ref 19 72 /r + 10 0x00036 code c6 2a { + 6 11 0x00038 word 68 67 65 74 70 6f 73 getpos + 7 12 0x0003f int 41 4 + 13 0x00040 int 11 1 + 14 0x00041 word 48 72 6f 6c 6c roll + 15 0x00046 word 38 61 64 64 add + 8 16 0x0004a int 31 3 + 17 0x0004b int 11 1 + 18 0x0004c word 48 72 6f 6c 6c roll + 19 0x00051 word 38 61 64 64 add + 20 0x00055 word 48 65 78 63 68 exch + 9 21 0x0005a word 68 6c 69 6e 65 74 6f lineto + 10 22 0x00061 prim 13 } + 23 0x00062 word 38 64 65 66 def + 12 24 0x00066 int 91 c8 00 200 + 25 0x00069 int 91 c8 00 200 + 26 0x0006c word 68 73 65 74 70 6f 73 setpos + 27 0x00073 int 91 c8 00 200 + 28 0x00076 int 01 0 + 29 0x00077 word 18 72 r + 14 30 0x00079 int 91 c8 00 200 + 31 0x0007c int 91 c8 00 200 + 32 0x0007f word 68 73 65 74 70 6f 73 setpos + 33 0x00086 int 91 c8 00 200 + 34 0x00089 int 81 3c 60 + 35 0x0008b word 18 72 r + 15 36 0x0008d int 91 c8 00 200 + 37 0x00090 int 91 c8 00 200 + 38 0x00093 word 68 73 65 74 70 6f 73 setpos + 39 0x0009a int 91 c8 00 200 + 40 0x0009d int 81 64 100 + 41 0x0009f word 18 72 r + 16 42 0x000a1 int 91 c8 00 200 + 43 0x000a4 int 91 c8 00 200 + 44 0x000a7 word 68 73 65 74 70 6f 73 setpos + 45 0x000ae int 91 c8 00 200 + 46 0x000b1 int 91 a0 00 160 + 47 0x000b4 word 18 72 r + 18 48 0x000b6 int 91 c8 00 200 + 49 0x000b9 int 91 c8 00 200 + 50 0x000bc word 68 73 65 74 70 6f 73 setpos + 51 0x000c3 int 91 c8 00 200 + 52 0x000c6 int 91 c8 00 200 + 53 0x000c9 word 18 72 r + 20 54 0x000cb int 91 c8 00 200 + 55 0x000ce int 91 c8 00 200 + 56 0x000d1 word 68 73 65 74 70 6f 73 setpos + 57 0x000d8 int 91 a0 00 160 + 58 0x000db int 91 c8 00 200 + 59 0x000de word 18 72 r + 21 60 0x000e0 int 91 c8 00 200 + 61 0x000e3 int 91 c8 00 200 + 62 0x000e6 word 68 73 65 74 70 6f 73 setpos + 63 0x000ed int 81 64 100 + 64 0x000ef int 91 c8 00 200 + 65 0x000f2 word 18 72 r + 22 66 0x000f4 int 91 c8 00 200 + 67 0x000f7 int 91 c8 00 200 + 68 0x000fa word 68 73 65 74 70 6f 73 setpos + 69 0x00101 int 81 3c 60 + 70 0x00103 int 91 c8 00 200 + 71 0x00106 word 18 72 r + 24 72 0x00108 int 91 c8 00 200 + 73 0x0010b int 91 c8 00 200 + 74 0x0010e word 68 73 65 74 70 6f 73 setpos + 75 0x00115 int 01 0 + 76 0x00116 int 91 c8 00 200 + 77 0x00119 word 18 72 r + 26 78 0x0011b int 91 c8 00 200 + 79 0x0011e int 91 c8 00 200 + 80 0x00121 word 68 73 65 74 70 6f 73 setpos + 81 0x00128 int 81 c4 -60 + 82 0x0012a int 91 c8 00 200 + 83 0x0012d word 18 72 r + 27 84 0x0012f int 91 c8 00 200 + 85 0x00132 int 91 c8 00 200 + 86 0x00135 word 68 73 65 74 70 6f 73 setpos + 87 0x0013c int 81 9c -100 + 88 0x0013e int 91 c8 00 200 + 89 0x00141 word 18 72 r + 28 90 0x00143 int 91 c8 00 200 + 91 0x00146 int 91 c8 00 200 + 92 0x00149 word 68 73 65 74 70 6f 73 setpos + 93 0x00150 int 91 60 ff -160 + 94 0x00153 int 91 c8 00 200 + 95 0x00156 word 18 72 r + 30 96 0x00158 int 91 c8 00 200 + 97 0x0015b int 91 c8 00 200 + 98 0x0015e word 68 73 65 74 70 6f 73 setpos + 99 0x00165 int 91 38 ff -200 + 100 0x00168 int 91 c8 00 200 + 101 0x0016b word 18 72 r + 32 102 0x0016d int 91 c8 00 200 + 103 0x00170 int 91 c8 00 200 + 104 0x00173 word 68 73 65 74 70 6f 73 setpos + 105 0x0017a int 91 38 ff -200 + 106 0x0017d int 91 a0 00 160 + 107 0x00180 word 18 72 r + 33 108 0x00182 int 91 c8 00 200 + 109 0x00185 int 91 c8 00 200 + 110 0x00188 word 68 73 65 74 70 6f 73 setpos + 111 0x0018f int 91 38 ff -200 + 112 0x00192 int 81 64 100 + 113 0x00194 word 18 72 r + 34 114 0x00196 int 91 c8 00 200 + 115 0x00199 int 91 c8 00 200 + 116 0x0019c word 68 73 65 74 70 6f 73 setpos + 117 0x001a3 int 91 38 ff -200 + 118 0x001a6 int 81 3c 60 + 119 0x001a8 word 18 72 r + 36 120 0x001aa int 91 c8 00 200 + 121 0x001ad int 91 c8 00 200 + 122 0x001b0 word 68 73 65 74 70 6f 73 setpos + 123 0x001b7 int 91 38 ff -200 + 124 0x001ba int 01 0 + 125 0x001bb word 18 72 r + 38 126 0x001bd int 91 c8 00 200 + 127 0x001c0 int 91 c8 00 200 + 128 0x001c3 word 68 73 65 74 70 6f 73 setpos + 129 0x001ca int 91 38 ff -200 + 130 0x001cd int 81 c4 -60 + 131 0x001cf word 18 72 r + 39 132 0x001d1 int 91 c8 00 200 + 133 0x001d4 int 91 c8 00 200 + 134 0x001d7 word 68 73 65 74 70 6f 73 setpos + 135 0x001de int 91 38 ff -200 + 136 0x001e1 int 81 9c -100 + 137 0x001e3 word 18 72 r + 40 138 0x001e5 int 91 c8 00 200 + 139 0x001e8 int 91 c8 00 200 + 140 0x001eb word 68 73 65 74 70 6f 73 setpos + 141 0x001f2 int 91 38 ff -200 + 142 0x001f5 int 91 60 ff -160 + 143 0x001f8 word 18 72 r + 42 144 0x001fa int 91 c8 00 200 + 145 0x001fd int 91 c8 00 200 + 146 0x00200 word 68 73 65 74 70 6f 73 setpos + 147 0x00207 int 91 38 ff -200 + 148 0x0020a int 91 38 ff -200 + 149 0x0020d word 18 72 r + 44 150 0x0020f int 91 c8 00 200 + 151 0x00212 int 91 c8 00 200 + 152 0x00215 word 68 73 65 74 70 6f 73 setpos + 153 0x0021c int 91 60 ff -160 + 154 0x0021f int 91 38 ff -200 + 155 0x00222 word 18 72 r + 45 156 0x00224 int 91 c8 00 200 + 157 0x00227 int 91 c8 00 200 + 158 0x0022a word 68 73 65 74 70 6f 73 setpos + 159 0x00231 int 81 9c -100 + 160 0x00233 int 91 38 ff -200 + 161 0x00236 word 18 72 r + 46 162 0x00238 int 91 c8 00 200 + 163 0x0023b int 91 c8 00 200 + 164 0x0023e word 68 73 65 74 70 6f 73 setpos + 165 0x00245 int 81 c4 -60 + 166 0x00247 int 91 38 ff -200 + 167 0x0024a word 18 72 r + 48 168 0x0024c int 91 c8 00 200 + 169 0x0024f int 91 c8 00 200 + 170 0x00252 word 68 73 65 74 70 6f 73 setpos + 171 0x00259 int 01 0 + 172 0x0025a int 91 38 ff -200 + 173 0x0025d word 18 72 r + 50 174 0x0025f int 91 c8 00 200 + 175 0x00262 int 91 c8 00 200 + 176 0x00265 word 68 73 65 74 70 6f 73 setpos + 177 0x0026c int 81 3c 60 + 178 0x0026e int 91 38 ff -200 + 179 0x00271 word 18 72 r + 51 180 0x00273 int 91 c8 00 200 + 181 0x00276 int 91 c8 00 200 + 182 0x00279 word 68 73 65 74 70 6f 73 setpos + 183 0x00280 int 81 64 100 + 184 0x00282 int 91 38 ff -200 + 185 0x00285 word 18 72 r + 52 186 0x00287 int 91 c8 00 200 + 187 0x0028a int 91 c8 00 200 + 188 0x0028d word 68 73 65 74 70 6f 73 setpos + 189 0x00294 int 91 a0 00 160 + 190 0x00297 int 91 38 ff -200 + 191 0x0029a word 18 72 r + 54 192 0x0029c int 91 c8 00 200 + 193 0x0029f int 91 c8 00 200 + 194 0x002a2 word 68 73 65 74 70 6f 73 setpos + 195 0x002a9 int 91 c8 00 200 + 196 0x002ac int 91 38 ff -200 + 197 0x002af word 18 72 r + 56 198 0x002b1 int 91 c8 00 200 + 199 0x002b4 int 91 c8 00 200 + 200 0x002b7 word 68 73 65 74 70 6f 73 setpos + 201 0x002be int 91 c8 00 200 + 202 0x002c1 int 91 60 ff -160 + 203 0x002c4 word 18 72 r + 57 204 0x002c6 int 91 c8 00 200 + 205 0x002c9 int 91 c8 00 200 + 206 0x002cc word 68 73 65 74 70 6f 73 setpos + 207 0x002d3 int 91 c8 00 200 + 208 0x002d6 int 81 9c -100 + 209 0x002d8 word 18 72 r + 58 210 0x002da int 91 c8 00 200 + 211 0x002dd int 91 c8 00 200 + 212 0x002e0 word 68 73 65 74 70 6f 73 setpos + 213 0x002e7 int 91 c8 00 200 + 214 0x002ea int 81 c4 -60 + 215 0x002ec word 18 72 r diff --git a/tests/0059_lineto/code1.log.ref b/tests/0059_lineto/code1.log.ref new file mode 100644 index 0000000..a767fb2 --- /dev/null +++ b/tests/0059_lineto/code1.log.ref @@ -0,0 +1,225 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 int 81 32 50 + 3 0x00014 int 81 14 20 + 4 0x00016 int 91 90 01 400 + 5 0x00019 int 91 90 01 400 + 6 0x0001c word 98 73 65 74 72 65 67 69 setregion + 6f 6e + 2 7 0x00026 int b1 ff ff ff 00 0x00ffffff + 8 0x0002b word 88 73 65 74 63 6f 6c 6f setcolor + 72 + 5 9 0x00034 ref 19 72 /r + 10 0x00036 code c6 25 { + 6 11 0x00038 word 68 67 65 74 70 6f 73 getpos + 7 12 0x0003f int 41 4 + 13 0x00040 int 11 1 + 14 0x00041 word 48 72 6f 6c 6c roll + 15 0x00046 word 38 61 64 64 add + 8 16 0x0004a int 31 3 + 17 0x0004b int 11 1 + 18 0x0004c xref 84 0b roll + 19 0x0004e xref 84 08 add + 20 0x00050 word 48 65 78 63 68 exch + 9 21 0x00055 word 68 6c 69 6e 65 74 6f lineto + 10 22 0x0005c prim 13 } + 23 0x0005d word 38 64 65 66 def + 12 24 0x00061 int 91 c8 00 200 + 25 0x00064 int 91 c8 00 200 + 26 0x00067 word 68 73 65 74 70 6f 73 setpos + 27 0x0006e int 91 c8 00 200 + 28 0x00071 int 01 0 + 29 0x00072 word 18 72 r + 14 30 0x00074 int 91 c8 00 200 + 31 0x00077 int 91 c8 00 200 + 32 0x0007a xref 84 13 setpos + 33 0x0007c int 91 c8 00 200 + 34 0x0007f int 81 3c 60 + 35 0x00081 word 18 72 r + 15 36 0x00083 int 91 c8 00 200 + 37 0x00086 int 91 c8 00 200 + 38 0x00089 xref 84 22 setpos + 39 0x0008b int 91 c8 00 200 + 40 0x0008e int 81 64 100 + 41 0x00090 word 18 72 r + 16 42 0x00092 int 91 c8 00 200 + 43 0x00095 int 91 c8 00 200 + 44 0x00098 xref 84 31 setpos + 45 0x0009a int 91 c8 00 200 + 46 0x0009d int 91 a0 00 160 + 47 0x000a0 word 18 72 r + 18 48 0x000a2 int 91 c8 00 200 + 49 0x000a5 int 91 c8 00 200 + 50 0x000a8 xref 84 41 setpos + 51 0x000aa int 91 c8 00 200 + 52 0x000ad int 91 c8 00 200 + 53 0x000b0 word 18 72 r + 20 54 0x000b2 int 91 c8 00 200 + 55 0x000b5 int 91 c8 00 200 + 56 0x000b8 xref 84 51 setpos + 57 0x000ba int 91 a0 00 160 + 58 0x000bd int 91 c8 00 200 + 59 0x000c0 word 18 72 r + 21 60 0x000c2 int 91 c8 00 200 + 61 0x000c5 int 91 c8 00 200 + 62 0x000c8 xref 84 61 setpos + 63 0x000ca int 81 64 100 + 64 0x000cc int 91 c8 00 200 + 65 0x000cf word 18 72 r + 22 66 0x000d1 int 91 c8 00 200 + 67 0x000d4 int 91 c8 00 200 + 68 0x000d7 xref 84 70 setpos + 69 0x000d9 int 81 3c 60 + 70 0x000db int 91 c8 00 200 + 71 0x000de word 18 72 r + 24 72 0x000e0 int 91 c8 00 200 + 73 0x000e3 int 91 c8 00 200 + 74 0x000e6 xref 84 7f setpos + 75 0x000e8 int 01 0 + 76 0x000e9 int 91 c8 00 200 + 77 0x000ec word 18 72 r + 26 78 0x000ee int 91 c8 00 200 + 79 0x000f1 int 91 c8 00 200 + 80 0x000f4 xref 84 8d setpos + 81 0x000f6 int 81 c4 -60 + 82 0x000f8 int 91 c8 00 200 + 83 0x000fb word 18 72 r + 27 84 0x000fd int 91 c8 00 200 + 85 0x00100 int 91 c8 00 200 + 86 0x00103 xref 84 9c setpos + 87 0x00105 int 81 9c -100 + 88 0x00107 int 91 c8 00 200 + 89 0x0010a word 18 72 r + 28 90 0x0010c int 91 c8 00 200 + 91 0x0010f int 91 c8 00 200 + 92 0x00112 xref 84 ab setpos + 93 0x00114 int 91 60 ff -160 + 94 0x00117 int 91 c8 00 200 + 95 0x0011a word 18 72 r + 30 96 0x0011c int 91 c8 00 200 + 97 0x0011f int 91 c8 00 200 + 98 0x00122 xref 84 bb setpos + 99 0x00124 int 91 38 ff -200 + 100 0x00127 int 91 c8 00 200 + 101 0x0012a word 18 72 r + 32 102 0x0012c int 91 c8 00 200 + 103 0x0012f int 91 c8 00 200 + 104 0x00132 xref 84 cb setpos + 105 0x00134 int 91 38 ff -200 + 106 0x00137 int 91 a0 00 160 + 107 0x0013a word 18 72 r + 33 108 0x0013c int 91 c8 00 200 + 109 0x0013f int 91 c8 00 200 + 110 0x00142 xref 84 db setpos + 111 0x00144 int 91 38 ff -200 + 112 0x00147 int 81 64 100 + 113 0x00149 word 18 72 r + 34 114 0x0014b int 91 c8 00 200 + 115 0x0014e int 91 c8 00 200 + 116 0x00151 xref 84 ea setpos + 117 0x00153 int 91 38 ff -200 + 118 0x00156 int 81 3c 60 + 119 0x00158 word 18 72 r + 36 120 0x0015a int 91 c8 00 200 + 121 0x0015d int 91 c8 00 200 + 122 0x00160 xref 84 f9 setpos + 123 0x00162 int 91 38 ff -200 + 124 0x00165 int 01 0 + 125 0x00166 word 18 72 r + 38 126 0x00168 int 91 c8 00 200 + 127 0x0016b int 91 c8 00 200 + 128 0x0016e xref 94 07 01 setpos + 129 0x00171 int 91 38 ff -200 + 130 0x00174 int 81 c4 -60 + 131 0x00176 word 18 72 r + 39 132 0x00178 int 91 c8 00 200 + 133 0x0017b int 91 c8 00 200 + 134 0x0017e xref 94 17 01 setpos + 135 0x00181 int 91 38 ff -200 + 136 0x00184 int 81 9c -100 + 137 0x00186 word 18 72 r + 40 138 0x00188 int 91 c8 00 200 + 139 0x0018b int 91 c8 00 200 + 140 0x0018e xref 94 27 01 setpos + 141 0x00191 int 91 38 ff -200 + 142 0x00194 int 91 60 ff -160 + 143 0x00197 word 18 72 r + 42 144 0x00199 int 91 c8 00 200 + 145 0x0019c int 91 c8 00 200 + 146 0x0019f xref 94 38 01 setpos + 147 0x001a2 int 91 38 ff -200 + 148 0x001a5 int 91 38 ff -200 + 149 0x001a8 word 18 72 r + 44 150 0x001aa int 91 c8 00 200 + 151 0x001ad int 91 c8 00 200 + 152 0x001b0 xref 94 49 01 setpos + 153 0x001b3 int 91 60 ff -160 + 154 0x001b6 int 91 38 ff -200 + 155 0x001b9 word 18 72 r + 45 156 0x001bb int 91 c8 00 200 + 157 0x001be int 91 c8 00 200 + 158 0x001c1 xref 94 5a 01 setpos + 159 0x001c4 int 81 9c -100 + 160 0x001c6 int 91 38 ff -200 + 161 0x001c9 word 18 72 r + 46 162 0x001cb int 91 c8 00 200 + 163 0x001ce int 91 c8 00 200 + 164 0x001d1 xref 94 6a 01 setpos + 165 0x001d4 int 81 c4 -60 + 166 0x001d6 int 91 38 ff -200 + 167 0x001d9 word 18 72 r + 48 168 0x001db int 91 c8 00 200 + 169 0x001de int 91 c8 00 200 + 170 0x001e1 xref 94 7a 01 setpos + 171 0x001e4 int 01 0 + 172 0x001e5 int 91 38 ff -200 + 173 0x001e8 word 18 72 r + 50 174 0x001ea int 91 c8 00 200 + 175 0x001ed int 91 c8 00 200 + 176 0x001f0 xref 94 89 01 setpos + 177 0x001f3 int 81 3c 60 + 178 0x001f5 int 91 38 ff -200 + 179 0x001f8 word 18 72 r + 51 180 0x001fa int 91 c8 00 200 + 181 0x001fd int 91 c8 00 200 + 182 0x00200 xref 94 99 01 setpos + 183 0x00203 int 81 64 100 + 184 0x00205 int 91 38 ff -200 + 185 0x00208 word 18 72 r + 52 186 0x0020a int 91 c8 00 200 + 187 0x0020d int 91 c8 00 200 + 188 0x00210 xref 94 a9 01 setpos + 189 0x00213 int 91 a0 00 160 + 190 0x00216 int 91 38 ff -200 + 191 0x00219 word 18 72 r + 54 192 0x0021b int 91 c8 00 200 + 193 0x0021e int 91 c8 00 200 + 194 0x00221 xref 94 ba 01 setpos + 195 0x00224 int 91 c8 00 200 + 196 0x00227 int 91 38 ff -200 + 197 0x0022a word 18 72 r + 56 198 0x0022c int 91 c8 00 200 + 199 0x0022f int 91 c8 00 200 + 200 0x00232 xref 94 cb 01 setpos + 201 0x00235 int 91 c8 00 200 + 202 0x00238 int 91 60 ff -160 + 203 0x0023b word 18 72 r + 57 204 0x0023d int 91 c8 00 200 + 205 0x00240 int 91 c8 00 200 + 206 0x00243 xref 94 dc 01 setpos + 207 0x00246 int 91 c8 00 200 + 208 0x00249 int 81 9c -100 + 209 0x0024b word 18 72 r + 58 210 0x0024d int 91 c8 00 200 + 211 0x00250 int 91 c8 00 200 + 212 0x00253 xref 94 ec 01 setpos + 213 0x00256 int 91 c8 00 200 + 214 0x00259 int 81 c4 -60 + 215 0x0025b word 18 72 r diff --git a/tests/0059_lineto/code2.log.ref b/tests/0059_lineto/code2.log.ref new file mode 100644 index 0000000..84b544a --- /dev/null +++ b/tests/0059_lineto/code2.log.ref @@ -0,0 +1,222 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 47 getgstate + 2 0x0000a int 81 32 50 + 3 0x0000c int 81 14 20 + 4 0x0000e int 91 90 01 400 + 5 0x00011 int 91 90 01 400 + 6 0x00014 prim 83 43 setregion + 2 7 0x00016 int b1 ff ff ff 00 0x00ffffff + 8 0x0001b prim 83 3a setcolor + 5 9 0x0001d ref 19 72 /r + 10 0x0001f code c6 13 { + 6 11 0x00021 prim 83 3d getpos + 7 12 0x00023 int 41 4 + 13 0x00024 int 11 1 + 14 0x00025 prim 83 1a roll + 15 0x00027 prim 83 1e add + 8 16 0x00029 int 31 3 + 17 0x0002a int 11 1 + 18 0x0002b prim 83 1a roll + 19 0x0002d prim 83 1e add + 20 0x0002f prim 83 18 exch + 9 21 0x00031 prim 83 55 lineto + 10 22 0x00033 prim 13 } + 23 0x00034 prim 63 def + 12 24 0x00035 int 91 c8 00 200 + 25 0x00038 int 91 c8 00 200 + 26 0x0003b prim 83 3e setpos + 27 0x0003d int 91 c8 00 200 + 28 0x00040 int 01 0 + 29 0x00041 word 18 72 r + 14 30 0x00043 int 91 c8 00 200 + 31 0x00046 int 91 c8 00 200 + 32 0x00049 prim 83 3e setpos + 33 0x0004b int 91 c8 00 200 + 34 0x0004e int 81 3c 60 + 35 0x00050 word 18 72 r + 15 36 0x00052 int 91 c8 00 200 + 37 0x00055 int 91 c8 00 200 + 38 0x00058 prim 83 3e setpos + 39 0x0005a int 91 c8 00 200 + 40 0x0005d int 81 64 100 + 41 0x0005f word 18 72 r + 16 42 0x00061 int 91 c8 00 200 + 43 0x00064 int 91 c8 00 200 + 44 0x00067 prim 83 3e setpos + 45 0x00069 int 91 c8 00 200 + 46 0x0006c int 91 a0 00 160 + 47 0x0006f word 18 72 r + 18 48 0x00071 int 91 c8 00 200 + 49 0x00074 int 91 c8 00 200 + 50 0x00077 prim 83 3e setpos + 51 0x00079 int 91 c8 00 200 + 52 0x0007c int 91 c8 00 200 + 53 0x0007f word 18 72 r + 20 54 0x00081 int 91 c8 00 200 + 55 0x00084 int 91 c8 00 200 + 56 0x00087 prim 83 3e setpos + 57 0x00089 int 91 a0 00 160 + 58 0x0008c int 91 c8 00 200 + 59 0x0008f word 18 72 r + 21 60 0x00091 int 91 c8 00 200 + 61 0x00094 int 91 c8 00 200 + 62 0x00097 prim 83 3e setpos + 63 0x00099 int 81 64 100 + 64 0x0009b int 91 c8 00 200 + 65 0x0009e word 18 72 r + 22 66 0x000a0 int 91 c8 00 200 + 67 0x000a3 int 91 c8 00 200 + 68 0x000a6 prim 83 3e setpos + 69 0x000a8 int 81 3c 60 + 70 0x000aa int 91 c8 00 200 + 71 0x000ad word 18 72 r + 24 72 0x000af int 91 c8 00 200 + 73 0x000b2 int 91 c8 00 200 + 74 0x000b5 prim 83 3e setpos + 75 0x000b7 int 01 0 + 76 0x000b8 int 91 c8 00 200 + 77 0x000bb word 18 72 r + 26 78 0x000bd int 91 c8 00 200 + 79 0x000c0 int 91 c8 00 200 + 80 0x000c3 prim 83 3e setpos + 81 0x000c5 int 81 c4 -60 + 82 0x000c7 int 91 c8 00 200 + 83 0x000ca word 18 72 r + 27 84 0x000cc int 91 c8 00 200 + 85 0x000cf int 91 c8 00 200 + 86 0x000d2 prim 83 3e setpos + 87 0x000d4 int 81 9c -100 + 88 0x000d6 int 91 c8 00 200 + 89 0x000d9 word 18 72 r + 28 90 0x000db int 91 c8 00 200 + 91 0x000de int 91 c8 00 200 + 92 0x000e1 prim 83 3e setpos + 93 0x000e3 int 91 60 ff -160 + 94 0x000e6 int 91 c8 00 200 + 95 0x000e9 word 18 72 r + 30 96 0x000eb int 91 c8 00 200 + 97 0x000ee int 91 c8 00 200 + 98 0x000f1 prim 83 3e setpos + 99 0x000f3 int 91 38 ff -200 + 100 0x000f6 int 91 c8 00 200 + 101 0x000f9 word 18 72 r + 32 102 0x000fb int 91 c8 00 200 + 103 0x000fe int 91 c8 00 200 + 104 0x00101 prim 83 3e setpos + 105 0x00103 int 91 38 ff -200 + 106 0x00106 int 91 a0 00 160 + 107 0x00109 word 18 72 r + 33 108 0x0010b int 91 c8 00 200 + 109 0x0010e int 91 c8 00 200 + 110 0x00111 prim 83 3e setpos + 111 0x00113 int 91 38 ff -200 + 112 0x00116 int 81 64 100 + 113 0x00118 word 18 72 r + 34 114 0x0011a int 91 c8 00 200 + 115 0x0011d int 91 c8 00 200 + 116 0x00120 prim 83 3e setpos + 117 0x00122 int 91 38 ff -200 + 118 0x00125 int 81 3c 60 + 119 0x00127 word 18 72 r + 36 120 0x00129 int 91 c8 00 200 + 121 0x0012c int 91 c8 00 200 + 122 0x0012f prim 83 3e setpos + 123 0x00131 int 91 38 ff -200 + 124 0x00134 int 01 0 + 125 0x00135 word 18 72 r + 38 126 0x00137 int 91 c8 00 200 + 127 0x0013a int 91 c8 00 200 + 128 0x0013d prim 83 3e setpos + 129 0x0013f int 91 38 ff -200 + 130 0x00142 int 81 c4 -60 + 131 0x00144 word 18 72 r + 39 132 0x00146 int 91 c8 00 200 + 133 0x00149 int 91 c8 00 200 + 134 0x0014c prim 83 3e setpos + 135 0x0014e int 91 38 ff -200 + 136 0x00151 int 81 9c -100 + 137 0x00153 word 18 72 r + 40 138 0x00155 int 91 c8 00 200 + 139 0x00158 int 91 c8 00 200 + 140 0x0015b prim 83 3e setpos + 141 0x0015d int 91 38 ff -200 + 142 0x00160 int 91 60 ff -160 + 143 0x00163 word 18 72 r + 42 144 0x00165 int 91 c8 00 200 + 145 0x00168 int 91 c8 00 200 + 146 0x0016b prim 83 3e setpos + 147 0x0016d int 91 38 ff -200 + 148 0x00170 int 91 38 ff -200 + 149 0x00173 word 18 72 r + 44 150 0x00175 int 91 c8 00 200 + 151 0x00178 int 91 c8 00 200 + 152 0x0017b prim 83 3e setpos + 153 0x0017d int 91 60 ff -160 + 154 0x00180 int 91 38 ff -200 + 155 0x00183 word 18 72 r + 45 156 0x00185 int 91 c8 00 200 + 157 0x00188 int 91 c8 00 200 + 158 0x0018b prim 83 3e setpos + 159 0x0018d int 81 9c -100 + 160 0x0018f int 91 38 ff -200 + 161 0x00192 word 18 72 r + 46 162 0x00194 int 91 c8 00 200 + 163 0x00197 int 91 c8 00 200 + 164 0x0019a prim 83 3e setpos + 165 0x0019c int 81 c4 -60 + 166 0x0019e int 91 38 ff -200 + 167 0x001a1 word 18 72 r + 48 168 0x001a3 int 91 c8 00 200 + 169 0x001a6 int 91 c8 00 200 + 170 0x001a9 prim 83 3e setpos + 171 0x001ab int 01 0 + 172 0x001ac int 91 38 ff -200 + 173 0x001af word 18 72 r + 50 174 0x001b1 int 91 c8 00 200 + 175 0x001b4 int 91 c8 00 200 + 176 0x001b7 prim 83 3e setpos + 177 0x001b9 int 81 3c 60 + 178 0x001bb int 91 38 ff -200 + 179 0x001be word 18 72 r + 51 180 0x001c0 int 91 c8 00 200 + 181 0x001c3 int 91 c8 00 200 + 182 0x001c6 prim 83 3e setpos + 183 0x001c8 int 81 64 100 + 184 0x001ca int 91 38 ff -200 + 185 0x001cd word 18 72 r + 52 186 0x001cf int 91 c8 00 200 + 187 0x001d2 int 91 c8 00 200 + 188 0x001d5 prim 83 3e setpos + 189 0x001d7 int 91 a0 00 160 + 190 0x001da int 91 38 ff -200 + 191 0x001dd word 18 72 r + 54 192 0x001df int 91 c8 00 200 + 193 0x001e2 int 91 c8 00 200 + 194 0x001e5 prim 83 3e setpos + 195 0x001e7 int 91 c8 00 200 + 196 0x001ea int 91 38 ff -200 + 197 0x001ed word 18 72 r + 56 198 0x001ef int 91 c8 00 200 + 199 0x001f2 int 91 c8 00 200 + 200 0x001f5 prim 83 3e setpos + 201 0x001f7 int 91 c8 00 200 + 202 0x001fa int 91 60 ff -160 + 203 0x001fd word 18 72 r + 57 204 0x001ff int 91 c8 00 200 + 205 0x00202 int 91 c8 00 200 + 206 0x00205 prim 83 3e setpos + 207 0x00207 int 91 c8 00 200 + 208 0x0020a int 81 9c -100 + 209 0x0020c word 18 72 r + 58 210 0x0020e int 91 c8 00 200 + 211 0x00211 int 91 c8 00 200 + 212 0x00214 prim 83 3e setpos + 213 0x00216 int 91 c8 00 200 + 214 0x00219 int 81 c4 -60 + 215 0x0021b word 18 72 r diff --git a/tests/0059_lineto/main.gs b/tests/0059_lineto/main.gs new file mode 100644 index 0000000..7218832 --- /dev/null +++ b/tests/0059_lineto/main.gs @@ -0,0 +1,58 @@ +getgstate 50 20 400 400 setregion +0x00ffffff setcolor + +# rlineto +/r { + getpos + 4 1 roll add + 3 1 roll add exch + lineto +} def + +200 200 setpos 200 0 r + +200 200 setpos 200 60 r +200 200 setpos 200 100 r +200 200 setpos 200 160 r + +200 200 setpos 200 200 r + +200 200 setpos 160 200 r +200 200 setpos 100 200 r +200 200 setpos 60 200 r + +200 200 setpos 0 200 r + +200 200 setpos -60 200 r +200 200 setpos -100 200 r +200 200 setpos -160 200 r + +200 200 setpos -200 200 r + +200 200 setpos -200 160 r +200 200 setpos -200 100 r +200 200 setpos -200 60 r + +200 200 setpos -200 0 r + +200 200 setpos -200 -60 r +200 200 setpos -200 -100 r +200 200 setpos -200 -160 r + +200 200 setpos -200 -200 r + +200 200 setpos -160 -200 r +200 200 setpos -100 -200 r +200 200 setpos -60 -200 r + +200 200 setpos 0 -200 r + +200 200 setpos 60 -200 r +200 200 setpos 100 -200 r +200 200 setpos 160 -200 r + +200 200 setpos 200 -200 r + +200 200 setpos 200 -160 r +200 200 setpos 200 -100 r +200 200 setpos 200 -60 r diff --git a/tests/0059_lineto/mem.log.ref b/tests/0059_lineto/mem.log.ref new file mode 100644 index 0000000..320d44f --- /dev/null +++ b/tests/0059_lineto/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 752] + 8: 187.01, 0x001d6d64[ 72] + 9: 188.01, 0x001d6db4[ 56] + 10: 193.01, 0x001d6df4[ 72] + 11: 0.00, 0x001d6e44[14848444] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | . . | + | . . . | + | . . . | + | . . . | + | . . ... . | + | ...,.,,... | + | ..:x*:.. | + | .... ..... | + | . . | + | . | + | . . | + | . . . | + | . . . | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 400x140 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> => #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 98 67 65 74 67 73 74 61 uQ..Bz.`.getgsta + 74 65 81 32 81 14 91 90 01 91 90 01 98 73 65 74 te.2.........set + 72 65 67 69 6f 6e b1 ff ff ff 00 88 73 65 74 63 region......setc + 6f 6c 6f 72 19 72 c6 2a 68 67 65 74 70 6f 73 41 olor.r.*hgetposA + 11 48 72 6f 6c 6c 38 61 64 64 31 11 48 72 6f 6c .Hroll8add1.Hrol + 6c 38 61 64 64 48 65 78 63 68 68 6c 69 6e 65 74 l8addHexchhlinet + 6f 13 38 64 65 66 91 c8 00 91 c8 00 68 73 65 74 o.8def......hset + 70 6f 73 91 c8 00 01 18 72 91 c8 00 91 c8 00 68 pos.....r......h + 73 65 74 70 6f 73 91 c8 00 81 3c 18 72 91 c8 00 setpos....<.r... + 91 c8 00 68 73 65 74 70 6f 73 91 c8 00 81 64 18 ...hsetpos....d. + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 c8 r......hsetpos.. + 00 91 a0 00 18 72 91 c8 00 91 c8 00 68 73 65 74 .....r......hset + 70 6f 73 91 c8 00 91 c8 00 18 72 91 c8 00 91 c8 pos.......r..... + 00 68 73 65 74 70 6f 73 91 a0 00 91 c8 00 18 72 .hsetpos.......r + 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 81 64 91 ......hsetpos.d. + c8 00 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f ...r......hsetpo + 73 81 3c 91 c8 00 18 72 91 c8 00 91 c8 00 68 73 s.<....r......hs + 65 74 70 6f 73 01 91 c8 00 18 72 91 c8 00 91 c8 etpos.....r..... + 00 68 73 65 74 70 6f 73 81 c4 91 c8 00 18 72 91 .hsetpos......r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 81 9c 91 c8 .....hsetpos.... + 00 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 ..r......hsetpos + 91 60 ff 91 c8 00 18 72 91 c8 00 91 c8 00 68 73 .`.....r......hs + 65 74 70 6f 73 91 38 ff 91 c8 00 18 72 91 c8 00 etpos.8.....r... + 91 c8 00 68 73 65 74 70 6f 73 91 38 ff 91 a0 00 ...hsetpos.8.... + 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 .r......hsetpos. + 38 ff 81 64 18 72 91 c8 00 91 c8 00 68 73 65 74 8..d.r......hset + 70 6f 73 91 38 ff 81 3c 18 72 91 c8 00 91 c8 00 pos.8..<.r...... + 68 73 65 74 70 6f 73 91 38 ff 01 18 72 91 c8 00 hsetpos.8...r... + 91 c8 00 68 73 65 74 70 6f 73 91 38 ff 81 c4 18 ...hsetpos.8.... + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 38 r......hsetpos.8 + ff 81 9c 18 72 91 c8 00 91 c8 00 68 73 65 74 70 ....r......hsetp + 6f 73 91 38 ff 91 60 ff 18 72 91 c8 00 91 c8 00 os.8..`..r...... + 68 73 65 74 70 6f 73 91 38 ff 91 38 ff 18 72 91 hsetpos.8..8..r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 91 60 ff 91 .....hsetpos.`.. + 38 ff 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 8..r......hsetpo + 73 81 9c 91 38 ff 18 72 91 c8 00 91 c8 00 68 73 s...8..r......hs + 65 74 70 6f 73 81 c4 91 38 ff 18 72 91 c8 00 91 etpos...8..r.... + c8 00 68 73 65 74 70 6f 73 01 91 38 ff 18 72 91 ..hsetpos..8..r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 81 3c 91 38 .....hsetpos.<.8 + ff 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 ..r......hsetpos + 81 64 91 38 ff 18 72 91 c8 00 91 c8 00 68 73 65 .d.8..r......hse + 74 70 6f 73 91 a0 00 91 38 ff 18 72 91 c8 00 91 tpos....8..r.... + c8 00 68 73 65 74 70 6f 73 91 c8 00 91 38 ff 18 ..hsetpos....8.. + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 c8 r......hsetpos.. + 00 91 60 ff 18 72 91 c8 00 91 c8 00 68 73 65 74 ..`..r......hset + 70 6f 73 91 c8 00 81 9c 18 72 91 c8 00 91 c8 00 pos......r...... + 68 73 65 74 70 6f 73 91 c8 00 81 c4 18 72 hsetpos......r + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x2ee (0x2ee) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #193.1.1.array + #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> + 72 r + #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + 68 67 65 74 70 6f 73 41 11 48 72 6f 6c 6c 38 61 hgetposA.Hroll8a + 64 64 31 11 48 72 6f 6c 6c 38 61 64 64 48 65 78 dd1.Hroll8addHex + 63 68 68 6c 69 6e 65 74 6f 13 chhlineto. diff --git a/tests/0059_lineto/screen.log.ref b/tests/0059_lineto/screen.log.ref new file mode 100644 index 0000000..c492e66 --- /dev/null +++ b/tests/0059_lineto/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | . . | + | . . . | + | . . . | + | . . . | + | . . ... . | + | ...,.,,... | + | ..:x*:.. | + | .... ..... | + | . . | + | . | + | . . | + | . . . | + | . . . | + | | + | | + | | + | | + | | + | | diff --git a/tests/0059_lineto/trace.log.ref b/tests/0059_lineto/trace.log.ref new file mode 100644 index 0000000..35b7b9f --- /dev/null +++ b/tests/0059_lineto/trace.log.ref @@ -0,0 +1,4785 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x12, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <50 (0x32)> + [1] #2.1.2.gstate +IP: #186:0x14, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <20 (0x14)> + [1] #189.1.1.num.int <50 (0x32)> + [2] #2.1.2.gstate +IP: #186:0x16, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <400 (0x190)> + [1] #190.1.1.num.int <20 (0x14)> + [2] #189.1.1.num.int <50 (0x32)> + [3] #2.1.2.gstate +IP: #186:0x19, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <400 (0x190)> + [2] #190.1.1.num.int <20 (0x14)> + [3] #189.1.1.num.int <50 (0x32)> + [4] #2.1.2.gstate +IP: #186:0x1c, type 8, 29[9] +GC: --#192.1.1.num.int +GC: --#191.1.1.num.int +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x26, type 1, 16777215 (0xffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <16777215 (0xffffff)> +IP: #186:0x2b, type 8, 44[8] +GC: --#194.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 1, "r"> +IP: #186:0x36, type 6, 56[42] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + [1] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> +IP: #186:0x62, type 8, 99[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#196.1.1.mem.code.ro +GC: --#196.1.2.mem.code.ro +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x66, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <200 (0xc8)> +IP: #186:0x69, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <200 (0xc8)> + [1] #197.1.1.num.int <200 (0xc8)> +IP: #186:0x6c, type 8, 109[6] +GC: --#198.1.1.num.int +GC: --#197.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x73, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <200 (0xc8)> +IP: #186:0x76, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #199.1.1.num.int <200 (0xc8)> +IP: #186:0x77, type 8, 120[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <200 (0xc8)> + [1] #202.1.1.num.int <200 (0xc8)> + [2] #200.1.1.num.int <0 (0x0)> + [3] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <4 (0x4)> + [1] #203.1.1.num.int <200 (0xc8)> + [2] #202.1.1.num.int <200 (0xc8)> + [3] #200.1.1.num.int <0 (0x0)> + [4] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.int <4 (0x4)> + [2] #203.1.1.num.int <200 (0xc8)> + [3] #202.1.1.num.int <200 (0xc8)> + [4] #200.1.1.num.int <0 (0x0)> + [5] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#205.1.1.num.int +GC: --#204.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <200 (0xc8)> + [1] #200.1.1.num.int <0 (0x0)> + [2] #199.1.1.num.int <200 (0xc8)> + [3] #203.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#202.1.1.num.int +GC: --#200.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #199.1.1.num.int <200 (0xc8)> + [2] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <3 (0x3)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #199.1.1.num.int <200 (0xc8)> + [3] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1 (0x1)> + [1] #207.1.1.num.int <3 (0x3)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #199.1.1.num.int <200 (0xc8)> + [4] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#208.1.1.num.int +GC: --#207.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <200 (0xc8)> + [1] #203.1.1.num.int <200 (0xc8)> + [2] #206.1.1.num.int <200 (0xc8)> +IP: #196:0x19, type 8, 26[3] +GC: --#199.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <200 (0xc8)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #209.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#206.1.1.num.int +GC: --#209.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x79, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <200 (0xc8)> +IP: #186:0x7c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <200 (0xc8)> + [1] #210.1.1.num.int <200 (0xc8)> +IP: #186:0x7f, type 8, 128[6] +GC: --#211.1.1.num.int +GC: --#210.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x86, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <200 (0xc8)> +IP: #186:0x89, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <60 (0x3c)> + [1] #212.1.1.num.int <200 (0xc8)> +IP: #186:0x8b, type 8, 140[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <60 (0x3c)> + [1] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <200 (0xc8)> + [2] #213.1.1.num.int <60 (0x3c)> + [3] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <4 (0x4)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <200 (0xc8)> + [3] #213.1.1.num.int <60 (0x3c)> + [4] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <1 (0x1)> + [1] #217.1.1.num.int <4 (0x4)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <200 (0xc8)> + [4] #213.1.1.num.int <60 (0x3c)> + [5] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <200 (0xc8)> + [1] #213.1.1.num.int <60 (0x3c)> + [2] #212.1.1.num.int <200 (0xc8)> + [3] #216.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#215.1.1.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <260 (0x104)> + [1] #212.1.1.num.int <200 (0xc8)> + [2] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <3 (0x3)> + [1] #219.1.1.num.int <260 (0x104)> + [2] #212.1.1.num.int <200 (0xc8)> + [3] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <1 (0x1)> + [1] #220.1.1.num.int <3 (0x3)> + [2] #219.1.1.num.int <260 (0x104)> + [3] #212.1.1.num.int <200 (0xc8)> + [4] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <200 (0xc8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #219.1.1.num.int <260 (0x104)> +IP: #196:0x19, type 8, 26[3] +GC: --#212.1.1.num.int +GC: --#216.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <400 (0x190)> + [1] #219.1.1.num.int <260 (0x104)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <260 (0x104)> + [1] #222.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#219.1.1.num.int +GC: --#222.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8d, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <200 (0xc8)> +IP: #186:0x90, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <200 (0xc8)> + [1] #223.1.1.num.int <200 (0xc8)> +IP: #186:0x93, type 8, 148[6] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x9a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <200 (0xc8)> +IP: #186:0x9d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <100 (0x64)> + [1] #225.1.1.num.int <200 (0xc8)> +IP: #186:0x9f, type 8, 160[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <100 (0x64)> + [1] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <200 (0xc8)> + [1] #228.1.1.num.int <200 (0xc8)> + [2] #226.1.1.num.int <100 (0x64)> + [3] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <4 (0x4)> + [1] #229.1.1.num.int <200 (0xc8)> + [2] #228.1.1.num.int <200 (0xc8)> + [3] #226.1.1.num.int <100 (0x64)> + [4] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <1 (0x1)> + [1] #230.1.1.num.int <4 (0x4)> + [2] #229.1.1.num.int <200 (0xc8)> + [3] #228.1.1.num.int <200 (0xc8)> + [4] #226.1.1.num.int <100 (0x64)> + [5] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#231.1.1.num.int +GC: --#230.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <200 (0xc8)> + [1] #226.1.1.num.int <100 (0x64)> + [2] #225.1.1.num.int <200 (0xc8)> + [3] #229.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#228.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <300 (0x12c)> + [1] #225.1.1.num.int <200 (0xc8)> + [2] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <3 (0x3)> + [1] #232.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <200 (0xc8)> + [3] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <1 (0x1)> + [1] #233.1.1.num.int <3 (0x3)> + [2] #232.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <200 (0xc8)> + [4] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#234.1.1.num.int +GC: --#233.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <200 (0xc8)> + [1] #229.1.1.num.int <200 (0xc8)> + [2] #232.1.1.num.int <300 (0x12c)> +IP: #196:0x19, type 8, 26[3] +GC: --#225.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <400 (0x190)> + [1] #232.1.1.num.int <300 (0x12c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <300 (0x12c)> + [1] #235.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#232.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#227.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xa1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <200 (0xc8)> +IP: #186:0xa4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <200 (0xc8)> + [1] #236.1.1.num.int <200 (0xc8)> +IP: #186:0xa7, type 8, 168[6] +GC: --#237.1.1.num.int +GC: --#236.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xae, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <200 (0xc8)> +IP: #186:0xb1, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <160 (0xa0)> + [1] #238.1.1.num.int <200 (0xc8)> +IP: #186:0xb4, type 8, 181[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <160 (0xa0)> + [1] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <200 (0xc8)> + [1] #241.1.1.num.int <200 (0xc8)> + [2] #239.1.1.num.int <160 (0xa0)> + [3] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <4 (0x4)> + [1] #242.1.1.num.int <200 (0xc8)> + [2] #241.1.1.num.int <200 (0xc8)> + [3] #239.1.1.num.int <160 (0xa0)> + [4] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <1 (0x1)> + [1] #243.1.1.num.int <4 (0x4)> + [2] #242.1.1.num.int <200 (0xc8)> + [3] #241.1.1.num.int <200 (0xc8)> + [4] #239.1.1.num.int <160 (0xa0)> + [5] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#244.1.1.num.int +GC: --#243.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <200 (0xc8)> + [1] #239.1.1.num.int <160 (0xa0)> + [2] #238.1.1.num.int <200 (0xc8)> + [3] #242.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#241.1.1.num.int +GC: --#239.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <360 (0x168)> + [1] #238.1.1.num.int <200 (0xc8)> + [2] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <3 (0x3)> + [1] #245.1.1.num.int <360 (0x168)> + [2] #238.1.1.num.int <200 (0xc8)> + [3] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1 (0x1)> + [1] #246.1.1.num.int <3 (0x3)> + [2] #245.1.1.num.int <360 (0x168)> + [3] #238.1.1.num.int <200 (0xc8)> + [4] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#247.1.1.num.int +GC: --#246.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <200 (0xc8)> + [1] #242.1.1.num.int <200 (0xc8)> + [2] #245.1.1.num.int <360 (0x168)> +IP: #196:0x19, type 8, 26[3] +GC: --#238.1.1.num.int +GC: --#242.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <400 (0x190)> + [1] #245.1.1.num.int <360 (0x168)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <360 (0x168)> + [1] #248.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#245.1.1.num.int +GC: --#248.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#240.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xb6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <200 (0xc8)> +IP: #186:0xb9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <200 (0xc8)> + [1] #249.1.1.num.int <200 (0xc8)> +IP: #186:0xbc, type 8, 189[6] +GC: --#250.1.1.num.int +GC: --#249.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xc3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <200 (0xc8)> +IP: #186:0xc6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <200 (0xc8)> + [1] #251.1.1.num.int <200 (0xc8)> +IP: #186:0xc9, type 8, 202[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <200 (0xc8)> + [1] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <200 (0xc8)> + [1] #254.1.1.num.int <200 (0xc8)> + [2] #252.1.1.num.int <200 (0xc8)> + [3] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <4 (0x4)> + [1] #255.1.1.num.int <200 (0xc8)> + [2] #254.1.1.num.int <200 (0xc8)> + [3] #252.1.1.num.int <200 (0xc8)> + [4] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <1 (0x1)> + [1] #256.1.1.num.int <4 (0x4)> + [2] #255.1.1.num.int <200 (0xc8)> + [3] #254.1.1.num.int <200 (0xc8)> + [4] #252.1.1.num.int <200 (0xc8)> + [5] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#257.1.1.num.int +GC: --#256.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <200 (0xc8)> + [1] #252.1.1.num.int <200 (0xc8)> + [2] #251.1.1.num.int <200 (0xc8)> + [3] #255.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#254.1.1.num.int +GC: --#252.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.int <400 (0x190)> + [1] #251.1.1.num.int <200 (0xc8)> + [2] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.int <3 (0x3)> + [1] #189.2.1.num.int <400 (0x190)> + [2] #251.1.1.num.int <200 (0xc8)> + [3] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.2.1.num.int <1 (0x1)> + [1] #190.2.1.num.int <3 (0x3)> + [2] #189.2.1.num.int <400 (0x190)> + [3] #251.1.1.num.int <200 (0xc8)> + [4] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#191.2.1.num.int +GC: --#190.2.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <200 (0xc8)> + [1] #255.1.1.num.int <200 (0xc8)> + [2] #189.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#251.1.1.num.int +GC: --#255.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.2.1.num.int <400 (0x190)> + [1] #189.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.int <400 (0x190)> + [1] #192.2.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#189.2.1.num.int +GC: --#192.2.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#253.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xcb, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.int <200 (0xc8)> +IP: #186:0xce, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <200 (0xc8)> + [1] #194.2.1.num.int <200 (0xc8)> +IP: #186:0xd1, type 8, 210[6] +GC: --#197.2.1.num.int +GC: --#194.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xd8, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.2.1.num.int <160 (0xa0)> +IP: #186:0xdb, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <200 (0xc8)> + [1] #198.2.1.num.int <160 (0xa0)> +IP: #186:0xde, type 8, 223[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <200 (0xc8)> + [1] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <200 (0xc8)> + [1] #201.2.1.num.int <200 (0xc8)> + [2] #199.2.1.num.int <200 (0xc8)> + [3] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <4 (0x4)> + [1] #202.2.1.num.int <200 (0xc8)> + [2] #201.2.1.num.int <200 (0xc8)> + [3] #199.2.1.num.int <200 (0xc8)> + [4] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.2.1.num.int <1 (0x1)> + [1] #203.2.1.num.int <4 (0x4)> + [2] #202.2.1.num.int <200 (0xc8)> + [3] #201.2.1.num.int <200 (0xc8)> + [4] #199.2.1.num.int <200 (0xc8)> + [5] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x9, type 8, 10[4] +GC: --#204.2.1.num.int +GC: --#203.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.2.1.num.int <200 (0xc8)> + [1] #199.2.1.num.int <200 (0xc8)> + [2] #198.2.1.num.int <160 (0xa0)> + [3] #202.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#201.2.1.num.int +GC: --#199.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.2.1.num.int <400 (0x190)> + [1] #198.2.1.num.int <160 (0xa0)> + [2] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.2.1.num.int <3 (0x3)> + [1] #205.2.1.num.int <400 (0x190)> + [2] #198.2.1.num.int <160 (0xa0)> + [3] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.2.1.num.int <1 (0x1)> + [1] #206.2.1.num.int <3 (0x3)> + [2] #205.2.1.num.int <400 (0x190)> + [3] #198.2.1.num.int <160 (0xa0)> + [4] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#207.2.1.num.int +GC: --#206.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.2.1.num.int <160 (0xa0)> + [1] #202.2.1.num.int <200 (0xc8)> + [2] #205.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#198.2.1.num.int +GC: --#202.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.2.1.num.int <360 (0x168)> + [1] #205.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.2.1.num.int <400 (0x190)> + [1] #208.2.1.num.int <360 (0x168)> +IP: #196:0x22, type 8, 35[6] +GC: --#205.2.1.num.int +GC: --#208.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe0, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.2.1.num.int <200 (0xc8)> +IP: #186:0xe3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.2.1.num.int <200 (0xc8)> + [1] #209.2.1.num.int <200 (0xc8)> +IP: #186:0xe6, type 8, 231[6] +GC: --#210.2.1.num.int +GC: --#209.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xed, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.2.1.num.int <100 (0x64)> +IP: #186:0xef, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.2.1.num.int <200 (0xc8)> + [1] #211.2.1.num.int <100 (0x64)> +IP: #186:0xf2, type 8, 243[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.2.1.num.int <200 (0xc8)> + [1] #211.2.1.num.int <100 (0x64)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.2.1.num.int <200 (0xc8)> + [1] #214.2.1.num.int <200 (0xc8)> + [2] #212.2.1.num.int <200 (0xc8)> + [3] #211.2.1.num.int <100 (0x64)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.2.1.num.int <4 (0x4)> + [1] #215.2.1.num.int <200 (0xc8)> + [2] #214.2.1.num.int <200 (0xc8)> + [3] #212.2.1.num.int <200 (0xc8)> + [4] #211.2.1.num.int <100 (0x64)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.2.1.num.int <1 (0x1)> + [1] #216.2.1.num.int <4 (0x4)> + [2] #215.2.1.num.int <200 (0xc8)> + [3] #214.2.1.num.int <200 (0xc8)> + [4] #212.2.1.num.int <200 (0xc8)> + [5] #211.2.1.num.int <100 (0x64)> +IP: #196:0x9, type 8, 10[4] +GC: --#217.2.1.num.int +GC: --#216.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.2.1.num.int <200 (0xc8)> + [1] #212.2.1.num.int <200 (0xc8)> + [2] #211.2.1.num.int <100 (0x64)> + [3] #215.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#214.2.1.num.int +GC: --#212.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.2.1.num.int <400 (0x190)> + [1] #211.2.1.num.int <100 (0x64)> + [2] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.2.1.num.int <3 (0x3)> + [1] #218.2.1.num.int <400 (0x190)> + [2] #211.2.1.num.int <100 (0x64)> + [3] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.2.1.num.int <1 (0x1)> + [1] #219.2.1.num.int <3 (0x3)> + [2] #218.2.1.num.int <400 (0x190)> + [3] #211.2.1.num.int <100 (0x64)> + [4] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#220.2.1.num.int +GC: --#219.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.2.1.num.int <100 (0x64)> + [1] #215.2.1.num.int <200 (0xc8)> + [2] #218.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#211.2.1.num.int +GC: --#215.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.2.1.num.int <300 (0x12c)> + [1] #218.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.2.1.num.int <400 (0x190)> + [1] #221.2.1.num.int <300 (0x12c)> +IP: #196:0x22, type 8, 35[6] +GC: --#218.2.1.num.int +GC: --#221.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#213.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xf4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.2.1.num.int <200 (0xc8)> +IP: #186:0xf7, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.2.1.num.int <200 (0xc8)> + [1] #222.2.1.num.int <200 (0xc8)> +IP: #186:0xfa, type 8, 251[6] +GC: --#223.2.1.num.int +GC: --#222.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x101, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.2.1.num.int <60 (0x3c)> +IP: #186:0x103, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.2.1.num.int <200 (0xc8)> + [1] #224.2.1.num.int <60 (0x3c)> +IP: #186:0x106, type 8, 263[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.2.1.num.int <200 (0xc8)> + [1] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.2.1.num.int <200 (0xc8)> + [1] #227.2.1.num.int <200 (0xc8)> + [2] #225.2.1.num.int <200 (0xc8)> + [3] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.2.1.num.int <4 (0x4)> + [1] #228.2.1.num.int <200 (0xc8)> + [2] #227.2.1.num.int <200 (0xc8)> + [3] #225.2.1.num.int <200 (0xc8)> + [4] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.2.1.num.int <1 (0x1)> + [1] #229.2.1.num.int <4 (0x4)> + [2] #228.2.1.num.int <200 (0xc8)> + [3] #227.2.1.num.int <200 (0xc8)> + [4] #225.2.1.num.int <200 (0xc8)> + [5] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x9, type 8, 10[4] +GC: --#230.2.1.num.int +GC: --#229.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.2.1.num.int <200 (0xc8)> + [1] #225.2.1.num.int <200 (0xc8)> + [2] #224.2.1.num.int <60 (0x3c)> + [3] #228.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#227.2.1.num.int +GC: --#225.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.2.1.num.int <400 (0x190)> + [1] #224.2.1.num.int <60 (0x3c)> + [2] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.2.1.num.int <3 (0x3)> + [1] #231.2.1.num.int <400 (0x190)> + [2] #224.2.1.num.int <60 (0x3c)> + [3] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.2.1.num.int <1 (0x1)> + [1] #232.2.1.num.int <3 (0x3)> + [2] #231.2.1.num.int <400 (0x190)> + [3] #224.2.1.num.int <60 (0x3c)> + [4] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#233.2.1.num.int +GC: --#232.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.2.1.num.int <60 (0x3c)> + [1] #228.2.1.num.int <200 (0xc8)> + [2] #231.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#224.2.1.num.int +GC: --#228.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.2.1.num.int <260 (0x104)> + [1] #231.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.2.1.num.int <400 (0x190)> + [1] #234.2.1.num.int <260 (0x104)> +IP: #196:0x22, type 8, 35[6] +GC: --#231.2.1.num.int +GC: --#234.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#226.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x108, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.2.1.num.int <200 (0xc8)> +IP: #186:0x10b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.2.1.num.int <200 (0xc8)> + [1] #235.2.1.num.int <200 (0xc8)> +IP: #186:0x10e, type 8, 271[6] +GC: --#236.2.1.num.int +GC: --#235.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x115, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.2.1.num.int <0 (0x0)> +IP: #186:0x116, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.2.1.num.int <200 (0xc8)> + [1] #237.2.1.num.int <0 (0x0)> +IP: #186:0x119, type 8, 282[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.2.1.num.int <200 (0xc8)> + [1] #237.2.1.num.int <0 (0x0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.2.1.num.int <200 (0xc8)> + [1] #240.2.1.num.int <200 (0xc8)> + [2] #238.2.1.num.int <200 (0xc8)> + [3] #237.2.1.num.int <0 (0x0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.2.1.num.int <4 (0x4)> + [1] #241.2.1.num.int <200 (0xc8)> + [2] #240.2.1.num.int <200 (0xc8)> + [3] #238.2.1.num.int <200 (0xc8)> + [4] #237.2.1.num.int <0 (0x0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.2.1.num.int <1 (0x1)> + [1] #242.2.1.num.int <4 (0x4)> + [2] #241.2.1.num.int <200 (0xc8)> + [3] #240.2.1.num.int <200 (0xc8)> + [4] #238.2.1.num.int <200 (0xc8)> + [5] #237.2.1.num.int <0 (0x0)> +IP: #196:0x9, type 8, 10[4] +GC: --#243.2.1.num.int +GC: --#242.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.2.1.num.int <200 (0xc8)> + [1] #238.2.1.num.int <200 (0xc8)> + [2] #237.2.1.num.int <0 (0x0)> + [3] #241.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#240.2.1.num.int +GC: --#238.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.2.1.num.int <400 (0x190)> + [1] #237.2.1.num.int <0 (0x0)> + [2] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.2.1.num.int <3 (0x3)> + [1] #244.2.1.num.int <400 (0x190)> + [2] #237.2.1.num.int <0 (0x0)> + [3] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.2.1.num.int <1 (0x1)> + [1] #245.2.1.num.int <3 (0x3)> + [2] #244.2.1.num.int <400 (0x190)> + [3] #237.2.1.num.int <0 (0x0)> + [4] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#246.2.1.num.int +GC: --#245.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.2.1.num.int <0 (0x0)> + [1] #241.2.1.num.int <200 (0xc8)> + [2] #244.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#237.2.1.num.int +GC: --#241.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.2.1.num.int <200 (0xc8)> + [1] #244.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.2.1.num.int <400 (0x190)> + [1] #247.2.1.num.int <200 (0xc8)> +IP: #196:0x22, type 8, 35[6] +GC: --#244.2.1.num.int +GC: --#247.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#239.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x11b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.2.1.num.int <200 (0xc8)> +IP: #186:0x11e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.2.1.num.int <200 (0xc8)> + [1] #248.2.1.num.int <200 (0xc8)> +IP: #186:0x121, type 8, 290[6] +GC: --#249.2.1.num.int +GC: --#248.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x128, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x12a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.2.1.num.int <200 (0xc8)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x12d, type 8, 302[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.2.1.num.int <200 (0xc8)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.2.1.num.int <200 (0xc8)> + [1] #253.2.1.num.int <200 (0xc8)> + [2] #251.2.1.num.int <200 (0xc8)> + [3] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.2.1.num.int <4 (0x4)> + [1] #254.2.1.num.int <200 (0xc8)> + [2] #253.2.1.num.int <200 (0xc8)> + [3] #251.2.1.num.int <200 (0xc8)> + [4] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.2.1.num.int <1 (0x1)> + [1] #255.2.1.num.int <4 (0x4)> + [2] #254.2.1.num.int <200 (0xc8)> + [3] #253.2.1.num.int <200 (0xc8)> + [4] #251.2.1.num.int <200 (0xc8)> + [5] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x9, type 8, 10[4] +GC: --#256.2.1.num.int +GC: --#255.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.2.1.num.int <200 (0xc8)> + [1] #251.2.1.num.int <200 (0xc8)> + [2] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #254.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#253.2.1.num.int +GC: --#251.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.2.1.num.int <400 (0x190)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [2] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.3.1.num.int <3 (0x3)> + [1] #257.2.1.num.int <400 (0x190)> + [2] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.3.1.num.int <1 (0x1)> + [1] #189.3.1.num.int <3 (0x3)> + [2] #257.2.1.num.int <400 (0x190)> + [3] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [4] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#190.3.1.num.int +GC: --#189.3.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [1] #254.2.1.num.int <200 (0xc8)> + [2] #257.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#250.2.1.num.int +GC: --#254.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.3.1.num.int <140 (0x8c)> + [1] #257.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.2.1.num.int <400 (0x190)> + [1] #191.3.1.num.int <140 (0x8c)> +IP: #196:0x22, type 8, 35[6] +GC: --#257.2.1.num.int +GC: --#191.3.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#252.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.3.1.num.int <200 (0xc8)> +IP: #186:0x132, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.3.1.num.int <200 (0xc8)> + [1] #192.3.1.num.int <200 (0xc8)> +IP: #186:0x135, type 8, 310[6] +GC: --#194.3.1.num.int +GC: --#192.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x13c, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x13e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.3.1.num.int <200 (0xc8)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x141, type 8, 322[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.3.1.num.int <200 (0xc8)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.3.1.num.int <200 (0xc8)> + [1] #200.3.1.num.int <200 (0xc8)> + [2] #198.3.1.num.int <200 (0xc8)> + [3] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.3.1.num.int <4 (0x4)> + [1] #201.3.1.num.int <200 (0xc8)> + [2] #200.3.1.num.int <200 (0xc8)> + [3] #198.3.1.num.int <200 (0xc8)> + [4] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.3.1.num.int <1 (0x1)> + [1] #202.3.1.num.int <4 (0x4)> + [2] #201.3.1.num.int <200 (0xc8)> + [3] #200.3.1.num.int <200 (0xc8)> + [4] #198.3.1.num.int <200 (0xc8)> + [5] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x9, type 8, 10[4] +GC: --#203.3.1.num.int +GC: --#202.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.3.1.num.int <200 (0xc8)> + [1] #198.3.1.num.int <200 (0xc8)> + [2] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #201.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#200.3.1.num.int +GC: --#198.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.3.1.num.int <400 (0x190)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [2] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.3.1.num.int <3 (0x3)> + [1] #204.3.1.num.int <400 (0x190)> + [2] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.3.1.num.int <1 (0x1)> + [1] #205.3.1.num.int <3 (0x3)> + [2] #204.3.1.num.int <400 (0x190)> + [3] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [4] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#206.3.1.num.int +GC: --#205.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [1] #201.3.1.num.int <200 (0xc8)> + [2] #204.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#197.3.1.num.int +GC: --#201.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.3.1.num.int <100 (0x64)> + [1] #204.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.3.1.num.int <400 (0x190)> + [1] #207.3.1.num.int <100 (0x64)> +IP: #196:0x22, type 8, 35[6] +GC: --#204.3.1.num.int +GC: --#207.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#199.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x143, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.3.1.num.int <200 (0xc8)> +IP: #186:0x146, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.3.1.num.int <200 (0xc8)> + [1] #208.3.1.num.int <200 (0xc8)> +IP: #186:0x149, type 8, 330[6] +GC: --#209.3.1.num.int +GC: --#208.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x150, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x153, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.3.1.num.int <200 (0xc8)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x156, type 8, 343[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.3.1.num.int <200 (0xc8)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.3.1.num.int <200 (0xc8)> + [1] #213.3.1.num.int <200 (0xc8)> + [2] #211.3.1.num.int <200 (0xc8)> + [3] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.3.1.num.int <4 (0x4)> + [1] #214.3.1.num.int <200 (0xc8)> + [2] #213.3.1.num.int <200 (0xc8)> + [3] #211.3.1.num.int <200 (0xc8)> + [4] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.3.1.num.int <1 (0x1)> + [1] #215.3.1.num.int <4 (0x4)> + [2] #214.3.1.num.int <200 (0xc8)> + [3] #213.3.1.num.int <200 (0xc8)> + [4] #211.3.1.num.int <200 (0xc8)> + [5] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x9, type 8, 10[4] +GC: --#216.3.1.num.int +GC: --#215.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.3.1.num.int <200 (0xc8)> + [1] #211.3.1.num.int <200 (0xc8)> + [2] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #214.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#213.3.1.num.int +GC: --#211.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.3.1.num.int <400 (0x190)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [2] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.3.1.num.int <3 (0x3)> + [1] #217.3.1.num.int <400 (0x190)> + [2] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.3.1.num.int <1 (0x1)> + [1] #218.3.1.num.int <3 (0x3)> + [2] #217.3.1.num.int <400 (0x190)> + [3] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [4] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#219.3.1.num.int +GC: --#218.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [1] #214.3.1.num.int <200 (0xc8)> + [2] #217.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#210.3.1.num.int +GC: --#214.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.3.1.num.int <40 (0x28)> + [1] #217.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.3.1.num.int <400 (0x190)> + [1] #220.3.1.num.int <40 (0x28)> +IP: #196:0x22, type 8, 35[6] +GC: --#217.3.1.num.int +GC: --#220.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#212.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x158, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.3.1.num.int <200 (0xc8)> +IP: #186:0x15b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.3.1.num.int <200 (0xc8)> + [1] #221.3.1.num.int <200 (0xc8)> +IP: #186:0x15e, type 8, 351[6] +GC: --#222.3.1.num.int +GC: --#221.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x165, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x168, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.3.1.num.int <200 (0xc8)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x16b, type 8, 364[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.3.1.num.int <200 (0xc8)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.3.1.num.int <200 (0xc8)> + [1] #226.3.1.num.int <200 (0xc8)> + [2] #224.3.1.num.int <200 (0xc8)> + [3] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.3.1.num.int <4 (0x4)> + [1] #227.3.1.num.int <200 (0xc8)> + [2] #226.3.1.num.int <200 (0xc8)> + [3] #224.3.1.num.int <200 (0xc8)> + [4] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.3.1.num.int <1 (0x1)> + [1] #228.3.1.num.int <4 (0x4)> + [2] #227.3.1.num.int <200 (0xc8)> + [3] #226.3.1.num.int <200 (0xc8)> + [4] #224.3.1.num.int <200 (0xc8)> + [5] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#229.3.1.num.int +GC: --#228.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.3.1.num.int <200 (0xc8)> + [1] #224.3.1.num.int <200 (0xc8)> + [2] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #227.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#226.3.1.num.int +GC: --#224.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.3.1.num.int <400 (0x190)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.3.1.num.int <3 (0x3)> + [1] #230.3.1.num.int <400 (0x190)> + [2] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.3.1.num.int <1 (0x1)> + [1] #231.3.1.num.int <3 (0x3)> + [2] #230.3.1.num.int <400 (0x190)> + [3] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#232.3.1.num.int +GC: --#231.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #227.3.1.num.int <200 (0xc8)> + [2] #230.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#223.3.1.num.int +GC: --#227.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.3.1.num.int <0 (0x0)> + [1] #230.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.3.1.num.int <400 (0x190)> + [1] #233.3.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#230.3.1.num.int +GC: --#233.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#225.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x16d, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.3.1.num.int <200 (0xc8)> +IP: #186:0x170, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.3.1.num.int <200 (0xc8)> + [1] #234.3.1.num.int <200 (0xc8)> +IP: #186:0x173, type 8, 372[6] +GC: --#235.3.1.num.int +GC: --#234.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x17a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x17d, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.3.1.num.int <160 (0xa0)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x180, type 8, 385[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.3.1.num.int <160 (0xa0)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.3.1.num.int <200 (0xc8)> + [1] #239.3.1.num.int <200 (0xc8)> + [2] #237.3.1.num.int <160 (0xa0)> + [3] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.3.1.num.int <4 (0x4)> + [1] #240.3.1.num.int <200 (0xc8)> + [2] #239.3.1.num.int <200 (0xc8)> + [3] #237.3.1.num.int <160 (0xa0)> + [4] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.3.1.num.int <1 (0x1)> + [1] #241.3.1.num.int <4 (0x4)> + [2] #240.3.1.num.int <200 (0xc8)> + [3] #239.3.1.num.int <200 (0xc8)> + [4] #237.3.1.num.int <160 (0xa0)> + [5] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#242.3.1.num.int +GC: --#241.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.3.1.num.int <200 (0xc8)> + [1] #237.3.1.num.int <160 (0xa0)> + [2] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #240.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#239.3.1.num.int +GC: --#237.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.3.1.num.int <360 (0x168)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.3.1.num.int <3 (0x3)> + [1] #243.3.1.num.int <360 (0x168)> + [2] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.3.1.num.int <1 (0x1)> + [1] #244.3.1.num.int <3 (0x3)> + [2] #243.3.1.num.int <360 (0x168)> + [3] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#245.3.1.num.int +GC: --#244.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #240.3.1.num.int <200 (0xc8)> + [2] #243.3.1.num.int <360 (0x168)> +IP: #196:0x19, type 8, 26[3] +GC: --#236.3.1.num.int +GC: --#240.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.3.1.num.int <0 (0x0)> + [1] #243.3.1.num.int <360 (0x168)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.3.1.num.int <360 (0x168)> + [1] #246.3.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#243.3.1.num.int +GC: --#246.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#238.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x182, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.3.1.num.int <200 (0xc8)> +IP: #186:0x185, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.3.1.num.int <200 (0xc8)> + [1] #247.3.1.num.int <200 (0xc8)> +IP: #186:0x188, type 8, 393[6] +GC: --#248.3.1.num.int +GC: --#247.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18f, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x192, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.3.1.num.int <100 (0x64)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x194, type 8, 405[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.3.1.num.int <100 (0x64)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.3.1.num.int <200 (0xc8)> + [1] #252.3.1.num.int <200 (0xc8)> + [2] #250.3.1.num.int <100 (0x64)> + [3] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.3.1.num.int <4 (0x4)> + [1] #253.3.1.num.int <200 (0xc8)> + [2] #252.3.1.num.int <200 (0xc8)> + [3] #250.3.1.num.int <100 (0x64)> + [4] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.3.1.num.int <1 (0x1)> + [1] #254.3.1.num.int <4 (0x4)> + [2] #253.3.1.num.int <200 (0xc8)> + [3] #252.3.1.num.int <200 (0xc8)> + [4] #250.3.1.num.int <100 (0x64)> + [5] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#255.3.1.num.int +GC: --#254.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.3.1.num.int <200 (0xc8)> + [1] #250.3.1.num.int <100 (0x64)> + [2] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #253.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#252.3.1.num.int +GC: --#250.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.3.1.num.int <300 (0x12c)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.3.1.num.int <3 (0x3)> + [1] #256.3.1.num.int <300 (0x12c)> + [2] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.4.1.num.int <1 (0x1)> + [1] #257.3.1.num.int <3 (0x3)> + [2] #256.3.1.num.int <300 (0x12c)> + [3] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#189.4.1.num.int +GC: --#257.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #253.3.1.num.int <200 (0xc8)> + [2] #256.3.1.num.int <300 (0x12c)> +IP: #196:0x19, type 8, 26[3] +GC: --#249.3.1.num.int +GC: --#253.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.4.1.num.int <0 (0x0)> + [1] #256.3.1.num.int <300 (0x12c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.3.1.num.int <300 (0x12c)> + [1] #190.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#256.3.1.num.int +GC: --#190.4.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#251.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x196, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.4.1.num.int <200 (0xc8)> +IP: #186:0x199, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.4.1.num.int <200 (0xc8)> + [1] #191.4.1.num.int <200 (0xc8)> +IP: #186:0x19c, type 8, 413[6] +GC: --#192.4.1.num.int +GC: --#191.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1a3, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1a6, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.4.1.num.int <60 (0x3c)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1a8, type 8, 425[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.4.1.num.int <60 (0x3c)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.4.1.num.int <200 (0xc8)> + [1] #199.4.1.num.int <200 (0xc8)> + [2] #197.4.1.num.int <60 (0x3c)> + [3] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.4.1.num.int <4 (0x4)> + [1] #200.4.1.num.int <200 (0xc8)> + [2] #199.4.1.num.int <200 (0xc8)> + [3] #197.4.1.num.int <60 (0x3c)> + [4] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.4.1.num.int <1 (0x1)> + [1] #201.4.1.num.int <4 (0x4)> + [2] #200.4.1.num.int <200 (0xc8)> + [3] #199.4.1.num.int <200 (0xc8)> + [4] #197.4.1.num.int <60 (0x3c)> + [5] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#202.4.1.num.int +GC: --#201.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.4.1.num.int <200 (0xc8)> + [1] #197.4.1.num.int <60 (0x3c)> + [2] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #200.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#199.4.1.num.int +GC: --#197.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.4.1.num.int <260 (0x104)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.4.1.num.int <3 (0x3)> + [1] #203.4.1.num.int <260 (0x104)> + [2] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.4.1.num.int <1 (0x1)> + [1] #204.4.1.num.int <3 (0x3)> + [2] #203.4.1.num.int <260 (0x104)> + [3] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#205.4.1.num.int +GC: --#204.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #200.4.1.num.int <200 (0xc8)> + [2] #203.4.1.num.int <260 (0x104)> +IP: #196:0x19, type 8, 26[3] +GC: --#194.4.1.num.int +GC: --#200.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.4.1.num.int <0 (0x0)> + [1] #203.4.1.num.int <260 (0x104)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.4.1.num.int <260 (0x104)> + [1] #206.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#203.4.1.num.int +GC: --#206.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#198.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1aa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.4.1.num.int <200 (0xc8)> +IP: #186:0x1ad, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.4.1.num.int <200 (0xc8)> + [1] #207.4.1.num.int <200 (0xc8)> +IP: #186:0x1b0, type 8, 433[6] +GC: --#208.4.1.num.int +GC: --#207.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1b7, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1ba, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.4.1.num.int <0 (0x0)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1bb, type 8, 444[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.4.1.num.int <0 (0x0)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.4.1.num.int <200 (0xc8)> + [1] #212.4.1.num.int <200 (0xc8)> + [2] #210.4.1.num.int <0 (0x0)> + [3] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.4.1.num.int <4 (0x4)> + [1] #213.4.1.num.int <200 (0xc8)> + [2] #212.4.1.num.int <200 (0xc8)> + [3] #210.4.1.num.int <0 (0x0)> + [4] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.4.1.num.int <1 (0x1)> + [1] #214.4.1.num.int <4 (0x4)> + [2] #213.4.1.num.int <200 (0xc8)> + [3] #212.4.1.num.int <200 (0xc8)> + [4] #210.4.1.num.int <0 (0x0)> + [5] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#215.4.1.num.int +GC: --#214.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.4.1.num.int <200 (0xc8)> + [1] #210.4.1.num.int <0 (0x0)> + [2] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #213.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#212.4.1.num.int +GC: --#210.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.4.1.num.int <200 (0xc8)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.4.1.num.int <3 (0x3)> + [1] #216.4.1.num.int <200 (0xc8)> + [2] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.4.1.num.int <1 (0x1)> + [1] #217.4.1.num.int <3 (0x3)> + [2] #216.4.1.num.int <200 (0xc8)> + [3] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#218.4.1.num.int +GC: --#217.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #213.4.1.num.int <200 (0xc8)> + [2] #216.4.1.num.int <200 (0xc8)> +IP: #196:0x19, type 8, 26[3] +GC: --#209.4.1.num.int +GC: --#213.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.4.1.num.int <0 (0x0)> + [1] #216.4.1.num.int <200 (0xc8)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.4.1.num.int <200 (0xc8)> + [1] #219.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#216.4.1.num.int +GC: --#219.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#211.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1bd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.4.1.num.int <200 (0xc8)> +IP: #186:0x1c0, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.4.1.num.int <200 (0xc8)> + [1] #220.4.1.num.int <200 (0xc8)> +IP: #186:0x1c3, type 8, 452[6] +GC: --#221.4.1.num.int +GC: --#220.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1ca, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1cd, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1cf, type 8, 464[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.4.1.num.int <200 (0xc8)> + [1] #225.4.1.num.int <200 (0xc8)> + [2] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [3] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.4.1.num.int <4 (0x4)> + [1] #226.4.1.num.int <200 (0xc8)> + [2] #225.4.1.num.int <200 (0xc8)> + [3] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [4] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.4.1.num.int <1 (0x1)> + [1] #227.4.1.num.int <4 (0x4)> + [2] #226.4.1.num.int <200 (0xc8)> + [3] #225.4.1.num.int <200 (0xc8)> + [4] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [5] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#228.4.1.num.int +GC: --#227.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.4.1.num.int <200 (0xc8)> + [1] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [2] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #226.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#225.4.1.num.int +GC: --#223.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.4.1.num.int <140 (0x8c)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.4.1.num.int <3 (0x3)> + [1] #229.4.1.num.int <140 (0x8c)> + [2] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.4.1.num.int <1 (0x1)> + [1] #230.4.1.num.int <3 (0x3)> + [2] #229.4.1.num.int <140 (0x8c)> + [3] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#231.4.1.num.int +GC: --#230.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #226.4.1.num.int <200 (0xc8)> + [2] #229.4.1.num.int <140 (0x8c)> +IP: #196:0x19, type 8, 26[3] +GC: --#222.4.1.num.int +GC: --#226.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.4.1.num.int <0 (0x0)> + [1] #229.4.1.num.int <140 (0x8c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.4.1.num.int <140 (0x8c)> + [1] #232.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#229.4.1.num.int +GC: --#232.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#224.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1d1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.4.1.num.int <200 (0xc8)> +IP: #186:0x1d4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.4.1.num.int <200 (0xc8)> + [1] #233.4.1.num.int <200 (0xc8)> +IP: #186:0x1d7, type 8, 472[6] +GC: --#234.4.1.num.int +GC: --#233.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1de, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1e1, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1e3, type 8, 484[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.4.1.num.int <200 (0xc8)> + [1] #238.4.1.num.int <200 (0xc8)> + [2] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [3] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.4.1.num.int <4 (0x4)> + [1] #239.4.1.num.int <200 (0xc8)> + [2] #238.4.1.num.int <200 (0xc8)> + [3] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [4] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.4.1.num.int <1 (0x1)> + [1] #240.4.1.num.int <4 (0x4)> + [2] #239.4.1.num.int <200 (0xc8)> + [3] #238.4.1.num.int <200 (0xc8)> + [4] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [5] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#241.4.1.num.int +GC: --#240.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.4.1.num.int <200 (0xc8)> + [1] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [2] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #239.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#238.4.1.num.int +GC: --#236.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.4.1.num.int <100 (0x64)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.4.1.num.int <3 (0x3)> + [1] #242.4.1.num.int <100 (0x64)> + [2] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.4.1.num.int <1 (0x1)> + [1] #243.4.1.num.int <3 (0x3)> + [2] #242.4.1.num.int <100 (0x64)> + [3] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#244.4.1.num.int +GC: --#243.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #239.4.1.num.int <200 (0xc8)> + [2] #242.4.1.num.int <100 (0x64)> +IP: #196:0x19, type 8, 26[3] +GC: --#235.4.1.num.int +GC: --#239.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.4.1.num.int <0 (0x0)> + [1] #242.4.1.num.int <100 (0x64)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.4.1.num.int <100 (0x64)> + [1] #245.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#242.4.1.num.int +GC: --#245.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#237.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e5, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.4.1.num.int <200 (0xc8)> +IP: #186:0x1e8, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.4.1.num.int <200 (0xc8)> + [1] #246.4.1.num.int <200 (0xc8)> +IP: #186:0x1eb, type 8, 492[6] +GC: --#247.4.1.num.int +GC: --#246.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1f2, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1f5, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1f8, type 8, 505[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.4.1.num.int <200 (0xc8)> + [1] #251.4.1.num.int <200 (0xc8)> + [2] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [3] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.4.1.num.int <4 (0x4)> + [1] #252.4.1.num.int <200 (0xc8)> + [2] #251.4.1.num.int <200 (0xc8)> + [3] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [4] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.4.1.num.int <1 (0x1)> + [1] #253.4.1.num.int <4 (0x4)> + [2] #252.4.1.num.int <200 (0xc8)> + [3] #251.4.1.num.int <200 (0xc8)> + [4] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [5] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#254.4.1.num.int +GC: --#253.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.4.1.num.int <200 (0xc8)> + [1] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [2] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #252.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#251.4.1.num.int +GC: --#249.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.4.1.num.int <40 (0x28)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.4.1.num.int <3 (0x3)> + [1] #255.4.1.num.int <40 (0x28)> + [2] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.4.1.num.int <1 (0x1)> + [1] #256.4.1.num.int <3 (0x3)> + [2] #255.4.1.num.int <40 (0x28)> + [3] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#257.4.1.num.int +GC: --#256.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #252.4.1.num.int <200 (0xc8)> + [2] #255.4.1.num.int <40 (0x28)> +IP: #196:0x19, type 8, 26[3] +GC: --#248.4.1.num.int +GC: --#252.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.5.1.num.int <0 (0x0)> + [1] #255.4.1.num.int <40 (0x28)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.4.1.num.int <40 (0x28)> + [1] #189.5.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#255.4.1.num.int +GC: --#189.5.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#250.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1fa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.5.1.num.int <200 (0xc8)> +IP: #186:0x1fd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.5.1.num.int <200 (0xc8)> + [1] #190.5.1.num.int <200 (0xc8)> +IP: #186:0x200, type 8, 513[6] +GC: --#191.5.1.num.int +GC: --#190.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x207, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x20a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x20d, type 8, 526[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.5.1.num.int <200 (0xc8)> + [1] #198.5.1.num.int <200 (0xc8)> + [2] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.5.1.num.int <4 (0x4)> + [1] #199.5.1.num.int <200 (0xc8)> + [2] #198.5.1.num.int <200 (0xc8)> + [3] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.5.1.num.int <1 (0x1)> + [1] #200.5.1.num.int <4 (0x4)> + [2] #199.5.1.num.int <200 (0xc8)> + [3] #198.5.1.num.int <200 (0xc8)> + [4] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#201.5.1.num.int +GC: --#200.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.5.1.num.int <200 (0xc8)> + [1] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #199.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#198.5.1.num.int +GC: --#194.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.5.1.num.int <0 (0x0)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.5.1.num.int <3 (0x3)> + [1] #202.5.1.num.int <0 (0x0)> + [2] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.5.1.num.int <1 (0x1)> + [1] #203.5.1.num.int <3 (0x3)> + [2] #202.5.1.num.int <0 (0x0)> + [3] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#204.5.1.num.int +GC: --#203.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #199.5.1.num.int <200 (0xc8)> + [2] #202.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#192.5.1.num.int +GC: --#199.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.5.1.num.int <0 (0x0)> + [1] #202.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.5.1.num.int <0 (0x0)> + [1] #205.5.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#202.5.1.num.int +GC: --#205.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#197.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.5.1.num.int <200 (0xc8)> +IP: #186:0x212, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.5.1.num.int <200 (0xc8)> + [1] #206.5.1.num.int <200 (0xc8)> +IP: #186:0x215, type 8, 534[6] +GC: --#207.5.1.num.int +GC: --#206.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x21c, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x21f, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x222, type 8, 547[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.5.1.num.int <200 (0xc8)> + [1] #211.5.1.num.int <200 (0xc8)> + [2] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.5.1.num.int <4 (0x4)> + [1] #212.5.1.num.int <200 (0xc8)> + [2] #211.5.1.num.int <200 (0xc8)> + [3] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.5.1.num.int <1 (0x1)> + [1] #213.5.1.num.int <4 (0x4)> + [2] #212.5.1.num.int <200 (0xc8)> + [3] #211.5.1.num.int <200 (0xc8)> + [4] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x9, type 8, 10[4] +GC: --#214.5.1.num.int +GC: --#213.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.5.1.num.int <200 (0xc8)> + [1] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #212.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#211.5.1.num.int +GC: --#209.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.5.1.num.int <0 (0x0)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [2] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.5.1.num.int <3 (0x3)> + [1] #215.5.1.num.int <0 (0x0)> + [2] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.5.1.num.int <1 (0x1)> + [1] #216.5.1.num.int <3 (0x3)> + [2] #215.5.1.num.int <0 (0x0)> + [3] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [4] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#217.5.1.num.int +GC: --#216.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [1] #212.5.1.num.int <200 (0xc8)> + [2] #215.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#208.5.1.num.int +GC: --#212.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.5.1.num.int <40 (0x28)> + [1] #215.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.5.1.num.int <0 (0x0)> + [1] #218.5.1.num.int <40 (0x28)> +IP: #196:0x22, type 8, 35[6] +GC: --#215.5.1.num.int +GC: --#218.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x224, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.5.1.num.int <200 (0xc8)> +IP: #186:0x227, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.5.1.num.int <200 (0xc8)> + [1] #219.5.1.num.int <200 (0xc8)> +IP: #186:0x22a, type 8, 555[6] +GC: --#220.5.1.num.int +GC: --#219.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x231, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x233, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x236, type 8, 567[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.5.1.num.int <200 (0xc8)> + [1] #224.5.1.num.int <200 (0xc8)> + [2] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.5.1.num.int <4 (0x4)> + [1] #225.5.1.num.int <200 (0xc8)> + [2] #224.5.1.num.int <200 (0xc8)> + [3] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.5.1.num.int <1 (0x1)> + [1] #226.5.1.num.int <4 (0x4)> + [2] #225.5.1.num.int <200 (0xc8)> + [3] #224.5.1.num.int <200 (0xc8)> + [4] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x9, type 8, 10[4] +GC: --#227.5.1.num.int +GC: --#226.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.5.1.num.int <200 (0xc8)> + [1] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #225.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#224.5.1.num.int +GC: --#222.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.5.1.num.int <0 (0x0)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [2] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.5.1.num.int <3 (0x3)> + [1] #228.5.1.num.int <0 (0x0)> + [2] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.5.1.num.int <1 (0x1)> + [1] #229.5.1.num.int <3 (0x3)> + [2] #228.5.1.num.int <0 (0x0)> + [3] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [4] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#230.5.1.num.int +GC: --#229.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [1] #225.5.1.num.int <200 (0xc8)> + [2] #228.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#221.5.1.num.int +GC: --#225.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.5.1.num.int <100 (0x64)> + [1] #228.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.5.1.num.int <0 (0x0)> + [1] #231.5.1.num.int <100 (0x64)> +IP: #196:0x22, type 8, 35[6] +GC: --#228.5.1.num.int +GC: --#231.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#223.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x238, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.5.1.num.int <200 (0xc8)> +IP: #186:0x23b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.5.1.num.int <200 (0xc8)> + [1] #232.5.1.num.int <200 (0xc8)> +IP: #186:0x23e, type 8, 575[6] +GC: --#233.5.1.num.int +GC: --#232.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x245, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x247, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x24a, type 8, 587[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.5.1.num.int <200 (0xc8)> + [1] #237.5.1.num.int <200 (0xc8)> + [2] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.5.1.num.int <4 (0x4)> + [1] #238.5.1.num.int <200 (0xc8)> + [2] #237.5.1.num.int <200 (0xc8)> + [3] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.5.1.num.int <1 (0x1)> + [1] #239.5.1.num.int <4 (0x4)> + [2] #238.5.1.num.int <200 (0xc8)> + [3] #237.5.1.num.int <200 (0xc8)> + [4] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x9, type 8, 10[4] +GC: --#240.5.1.num.int +GC: --#239.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.5.1.num.int <200 (0xc8)> + [1] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #238.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#237.5.1.num.int +GC: --#235.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.5.1.num.int <0 (0x0)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [2] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.5.1.num.int <3 (0x3)> + [1] #241.5.1.num.int <0 (0x0)> + [2] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.5.1.num.int <1 (0x1)> + [1] #242.5.1.num.int <3 (0x3)> + [2] #241.5.1.num.int <0 (0x0)> + [3] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [4] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#243.5.1.num.int +GC: --#242.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [1] #238.5.1.num.int <200 (0xc8)> + [2] #241.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#234.5.1.num.int +GC: --#238.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.5.1.num.int <140 (0x8c)> + [1] #241.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.5.1.num.int <0 (0x0)> + [1] #244.5.1.num.int <140 (0x8c)> +IP: #196:0x22, type 8, 35[6] +GC: --#241.5.1.num.int +GC: --#244.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#236.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x24c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.5.1.num.int <200 (0xc8)> +IP: #186:0x24f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.5.1.num.int <200 (0xc8)> + [1] #245.5.1.num.int <200 (0xc8)> +IP: #186:0x252, type 8, 595[6] +GC: --#246.5.1.num.int +GC: --#245.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x259, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.5.1.num.int <0 (0x0)> +IP: #186:0x25a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #247.5.1.num.int <0 (0x0)> +IP: #186:0x25d, type 8, 606[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #247.5.1.num.int <0 (0x0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.5.1.num.int <200 (0xc8)> + [1] #250.5.1.num.int <200 (0xc8)> + [2] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #247.5.1.num.int <0 (0x0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.5.1.num.int <4 (0x4)> + [1] #251.5.1.num.int <200 (0xc8)> + [2] #250.5.1.num.int <200 (0xc8)> + [3] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #247.5.1.num.int <0 (0x0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.5.1.num.int <1 (0x1)> + [1] #252.5.1.num.int <4 (0x4)> + [2] #251.5.1.num.int <200 (0xc8)> + [3] #250.5.1.num.int <200 (0xc8)> + [4] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #247.5.1.num.int <0 (0x0)> +IP: #196:0x9, type 8, 10[4] +GC: --#253.5.1.num.int +GC: --#252.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.5.1.num.int <200 (0xc8)> + [1] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #247.5.1.num.int <0 (0x0)> + [3] #251.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#250.5.1.num.int +GC: --#248.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.5.1.num.int <0 (0x0)> + [1] #247.5.1.num.int <0 (0x0)> + [2] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.5.1.num.int <3 (0x3)> + [1] #254.5.1.num.int <0 (0x0)> + [2] #247.5.1.num.int <0 (0x0)> + [3] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.5.1.num.int <1 (0x1)> + [1] #255.5.1.num.int <3 (0x3)> + [2] #254.5.1.num.int <0 (0x0)> + [3] #247.5.1.num.int <0 (0x0)> + [4] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#256.5.1.num.int +GC: --#255.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.5.1.num.int <0 (0x0)> + [1] #251.5.1.num.int <200 (0xc8)> + [2] #254.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#247.5.1.num.int +GC: --#251.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.5.1.num.int <200 (0xc8)> + [1] #254.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.5.1.num.int <0 (0x0)> + [1] #257.5.1.num.int <200 (0xc8)> +IP: #196:0x22, type 8, 35[6] +GC: --#254.5.1.num.int +GC: --#257.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#249.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x25f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.6.1.num.int <200 (0xc8)> +IP: #186:0x262, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.6.1.num.int <200 (0xc8)> + [1] #189.6.1.num.int <200 (0xc8)> +IP: #186:0x265, type 8, 614[6] +GC: --#190.6.1.num.int +GC: --#189.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x26c, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.6.1.num.int <60 (0x3c)> +IP: #186:0x26e, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #191.6.1.num.int <60 (0x3c)> +IP: #186:0x271, type 8, 626[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.6.1.num.int <200 (0xc8)> + [1] #197.6.1.num.int <200 (0xc8)> + [2] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.6.1.num.int <4 (0x4)> + [1] #198.6.1.num.int <200 (0xc8)> + [2] #197.6.1.num.int <200 (0xc8)> + [3] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.6.1.num.int <1 (0x1)> + [1] #199.6.1.num.int <4 (0x4)> + [2] #198.6.1.num.int <200 (0xc8)> + [3] #197.6.1.num.int <200 (0xc8)> + [4] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x9, type 8, 10[4] +GC: --#200.6.1.num.int +GC: --#199.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.6.1.num.int <200 (0xc8)> + [1] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #191.6.1.num.int <60 (0x3c)> + [3] #198.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#197.6.1.num.int +GC: --#192.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.6.1.num.int <0 (0x0)> + [1] #191.6.1.num.int <60 (0x3c)> + [2] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.6.1.num.int <3 (0x3)> + [1] #201.6.1.num.int <0 (0x0)> + [2] #191.6.1.num.int <60 (0x3c)> + [3] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.6.1.num.int <1 (0x1)> + [1] #202.6.1.num.int <3 (0x3)> + [2] #201.6.1.num.int <0 (0x0)> + [3] #191.6.1.num.int <60 (0x3c)> + [4] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#203.6.1.num.int +GC: --#202.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.6.1.num.int <60 (0x3c)> + [1] #198.6.1.num.int <200 (0xc8)> + [2] #201.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#191.6.1.num.int +GC: --#198.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.6.1.num.int <260 (0x104)> + [1] #201.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.6.1.num.int <0 (0x0)> + [1] #204.6.1.num.int <260 (0x104)> +IP: #196:0x22, type 8, 35[6] +GC: --#201.6.1.num.int +GC: --#204.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#194.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x273, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.6.1.num.int <200 (0xc8)> +IP: #186:0x276, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.6.1.num.int <200 (0xc8)> + [1] #205.6.1.num.int <200 (0xc8)> +IP: #186:0x279, type 8, 634[6] +GC: --#206.6.1.num.int +GC: --#205.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x280, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.6.1.num.int <100 (0x64)> +IP: #186:0x282, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #207.6.1.num.int <100 (0x64)> +IP: #186:0x285, type 8, 646[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #207.6.1.num.int <100 (0x64)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.6.1.num.int <200 (0xc8)> + [1] #210.6.1.num.int <200 (0xc8)> + [2] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #207.6.1.num.int <100 (0x64)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.6.1.num.int <4 (0x4)> + [1] #211.6.1.num.int <200 (0xc8)> + [2] #210.6.1.num.int <200 (0xc8)> + [3] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #207.6.1.num.int <100 (0x64)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.6.1.num.int <1 (0x1)> + [1] #212.6.1.num.int <4 (0x4)> + [2] #211.6.1.num.int <200 (0xc8)> + [3] #210.6.1.num.int <200 (0xc8)> + [4] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #207.6.1.num.int <100 (0x64)> +IP: #196:0x9, type 8, 10[4] +GC: --#213.6.1.num.int +GC: --#212.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.6.1.num.int <200 (0xc8)> + [1] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #207.6.1.num.int <100 (0x64)> + [3] #211.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#210.6.1.num.int +GC: --#208.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.6.1.num.int <0 (0x0)> + [1] #207.6.1.num.int <100 (0x64)> + [2] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.6.1.num.int <3 (0x3)> + [1] #214.6.1.num.int <0 (0x0)> + [2] #207.6.1.num.int <100 (0x64)> + [3] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.6.1.num.int <1 (0x1)> + [1] #215.6.1.num.int <3 (0x3)> + [2] #214.6.1.num.int <0 (0x0)> + [3] #207.6.1.num.int <100 (0x64)> + [4] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#216.6.1.num.int +GC: --#215.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.6.1.num.int <100 (0x64)> + [1] #211.6.1.num.int <200 (0xc8)> + [2] #214.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#207.6.1.num.int +GC: --#211.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.6.1.num.int <300 (0x12c)> + [1] #214.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.6.1.num.int <0 (0x0)> + [1] #217.6.1.num.int <300 (0x12c)> +IP: #196:0x22, type 8, 35[6] +GC: --#214.6.1.num.int +GC: --#217.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x287, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.6.1.num.int <200 (0xc8)> +IP: #186:0x28a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.6.1.num.int <200 (0xc8)> + [1] #218.6.1.num.int <200 (0xc8)> +IP: #186:0x28d, type 8, 654[6] +GC: --#219.6.1.num.int +GC: --#218.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x294, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.6.1.num.int <160 (0xa0)> +IP: #186:0x297, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #220.6.1.num.int <160 (0xa0)> +IP: #186:0x29a, type 8, 667[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.6.1.num.int <200 (0xc8)> + [1] #223.6.1.num.int <200 (0xc8)> + [2] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.6.1.num.int <4 (0x4)> + [1] #224.6.1.num.int <200 (0xc8)> + [2] #223.6.1.num.int <200 (0xc8)> + [3] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.6.1.num.int <1 (0x1)> + [1] #225.6.1.num.int <4 (0x4)> + [2] #224.6.1.num.int <200 (0xc8)> + [3] #223.6.1.num.int <200 (0xc8)> + [4] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x9, type 8, 10[4] +GC: --#226.6.1.num.int +GC: --#225.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.6.1.num.int <200 (0xc8)> + [1] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #220.6.1.num.int <160 (0xa0)> + [3] #224.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#223.6.1.num.int +GC: --#221.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.6.1.num.int <0 (0x0)> + [1] #220.6.1.num.int <160 (0xa0)> + [2] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.6.1.num.int <3 (0x3)> + [1] #227.6.1.num.int <0 (0x0)> + [2] #220.6.1.num.int <160 (0xa0)> + [3] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.6.1.num.int <1 (0x1)> + [1] #228.6.1.num.int <3 (0x3)> + [2] #227.6.1.num.int <0 (0x0)> + [3] #220.6.1.num.int <160 (0xa0)> + [4] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#229.6.1.num.int +GC: --#228.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.6.1.num.int <160 (0xa0)> + [1] #224.6.1.num.int <200 (0xc8)> + [2] #227.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#220.6.1.num.int +GC: --#224.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.6.1.num.int <360 (0x168)> + [1] #227.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.6.1.num.int <0 (0x0)> + [1] #230.6.1.num.int <360 (0x168)> +IP: #196:0x22, type 8, 35[6] +GC: --#227.6.1.num.int +GC: --#230.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#222.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.6.1.num.int <200 (0xc8)> +IP: #186:0x29f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.6.1.num.int <200 (0xc8)> + [1] #231.6.1.num.int <200 (0xc8)> +IP: #186:0x2a2, type 8, 675[6] +GC: --#232.6.1.num.int +GC: --#231.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2a9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.6.1.num.int <200 (0xc8)> +IP: #186:0x2ac, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #233.6.1.num.int <200 (0xc8)> +IP: #186:0x2af, type 8, 688[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.6.1.num.int <200 (0xc8)> + [1] #236.6.1.num.int <200 (0xc8)> + [2] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.6.1.num.int <4 (0x4)> + [1] #237.6.1.num.int <200 (0xc8)> + [2] #236.6.1.num.int <200 (0xc8)> + [3] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.6.1.num.int <1 (0x1)> + [1] #238.6.1.num.int <4 (0x4)> + [2] #237.6.1.num.int <200 (0xc8)> + [3] #236.6.1.num.int <200 (0xc8)> + [4] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#239.6.1.num.int +GC: --#238.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.6.1.num.int <200 (0xc8)> + [1] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #233.6.1.num.int <200 (0xc8)> + [3] #237.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#236.6.1.num.int +GC: --#234.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.6.1.num.int <0 (0x0)> + [1] #233.6.1.num.int <200 (0xc8)> + [2] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.6.1.num.int <3 (0x3)> + [1] #240.6.1.num.int <0 (0x0)> + [2] #233.6.1.num.int <200 (0xc8)> + [3] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.6.1.num.int <1 (0x1)> + [1] #241.6.1.num.int <3 (0x3)> + [2] #240.6.1.num.int <0 (0x0)> + [3] #233.6.1.num.int <200 (0xc8)> + [4] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#242.6.1.num.int +GC: --#241.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.6.1.num.int <200 (0xc8)> + [1] #237.6.1.num.int <200 (0xc8)> + [2] #240.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#233.6.1.num.int +GC: --#237.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.6.1.num.int <400 (0x190)> + [1] #240.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.6.1.num.int <0 (0x0)> + [1] #243.6.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#240.6.1.num.int +GC: --#243.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#235.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2b1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.6.1.num.int <200 (0xc8)> +IP: #186:0x2b4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.6.1.num.int <200 (0xc8)> + [1] #244.6.1.num.int <200 (0xc8)> +IP: #186:0x2b7, type 8, 696[6] +GC: --#245.6.1.num.int +GC: --#244.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2be, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.6.1.num.int <200 (0xc8)> +IP: #186:0x2c1, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #246.6.1.num.int <200 (0xc8)> +IP: #186:0x2c4, type 8, 709[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.6.1.num.int <200 (0xc8)> + [1] #249.6.1.num.int <200 (0xc8)> + [2] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [3] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.6.1.num.int <4 (0x4)> + [1] #250.6.1.num.int <200 (0xc8)> + [2] #249.6.1.num.int <200 (0xc8)> + [3] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [4] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.6.1.num.int <1 (0x1)> + [1] #251.6.1.num.int <4 (0x4)> + [2] #250.6.1.num.int <200 (0xc8)> + [3] #249.6.1.num.int <200 (0xc8)> + [4] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [5] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#252.6.1.num.int +GC: --#251.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.6.1.num.int <200 (0xc8)> + [1] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [2] #246.6.1.num.int <200 (0xc8)> + [3] #250.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#249.6.1.num.int +GC: --#247.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.6.1.num.int <40 (0x28)> + [1] #246.6.1.num.int <200 (0xc8)> + [2] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.6.1.num.int <3 (0x3)> + [1] #253.6.1.num.int <40 (0x28)> + [2] #246.6.1.num.int <200 (0xc8)> + [3] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.6.1.num.int <1 (0x1)> + [1] #254.6.1.num.int <3 (0x3)> + [2] #253.6.1.num.int <40 (0x28)> + [3] #246.6.1.num.int <200 (0xc8)> + [4] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#255.6.1.num.int +GC: --#254.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.6.1.num.int <200 (0xc8)> + [1] #250.6.1.num.int <200 (0xc8)> + [2] #253.6.1.num.int <40 (0x28)> +IP: #196:0x19, type 8, 26[3] +GC: --#246.6.1.num.int +GC: --#250.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.6.1.num.int <400 (0x190)> + [1] #253.6.1.num.int <40 (0x28)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.6.1.num.int <40 (0x28)> + [1] #256.6.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#253.6.1.num.int +GC: --#256.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#248.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2c6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.6.1.num.int <200 (0xc8)> +IP: #186:0x2c9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.7.1.num.int <200 (0xc8)> + [1] #257.6.1.num.int <200 (0xc8)> +IP: #186:0x2cc, type 8, 717[6] +GC: --#189.7.1.num.int +GC: --#257.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2d3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.7.1.num.int <200 (0xc8)> +IP: #186:0x2d6, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #190.7.1.num.int <200 (0xc8)> +IP: #186:0x2d8, type 8, 729[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.7.1.num.int <200 (0xc8)> + [1] #194.7.1.num.int <200 (0xc8)> + [2] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [3] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.7.1.num.int <4 (0x4)> + [1] #197.7.1.num.int <200 (0xc8)> + [2] #194.7.1.num.int <200 (0xc8)> + [3] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [4] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.7.1.num.int <1 (0x1)> + [1] #198.7.1.num.int <4 (0x4)> + [2] #197.7.1.num.int <200 (0xc8)> + [3] #194.7.1.num.int <200 (0xc8)> + [4] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [5] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#199.7.1.num.int +GC: --#198.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.7.1.num.int <200 (0xc8)> + [1] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [2] #190.7.1.num.int <200 (0xc8)> + [3] #197.7.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#194.7.1.num.int +GC: --#191.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.7.1.num.int <100 (0x64)> + [1] #190.7.1.num.int <200 (0xc8)> + [2] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.7.1.num.int <3 (0x3)> + [1] #200.7.1.num.int <100 (0x64)> + [2] #190.7.1.num.int <200 (0xc8)> + [3] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.7.1.num.int <1 (0x1)> + [1] #201.7.1.num.int <3 (0x3)> + [2] #200.7.1.num.int <100 (0x64)> + [3] #190.7.1.num.int <200 (0xc8)> + [4] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#202.7.1.num.int +GC: --#201.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.7.1.num.int <200 (0xc8)> + [1] #197.7.1.num.int <200 (0xc8)> + [2] #200.7.1.num.int <100 (0x64)> +IP: #196:0x19, type 8, 26[3] +GC: --#190.7.1.num.int +GC: --#197.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.7.1.num.int <400 (0x190)> + [1] #200.7.1.num.int <100 (0x64)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.7.1.num.int <100 (0x64)> + [1] #203.7.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#200.7.1.num.int +GC: --#203.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#192.7.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2da, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.7.1.num.int <200 (0xc8)> +IP: #186:0x2dd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.7.1.num.int <200 (0xc8)> + [1] #204.7.1.num.int <200 (0xc8)> +IP: #186:0x2e0, type 8, 737[6] +GC: --#205.7.1.num.int +GC: --#204.7.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2e7, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.7.1.num.int <200 (0xc8)> +IP: #186:0x2ea, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #206.7.1.num.int <200 (0xc8)> +IP: #186:0x2ec, type 8, 749[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.7.1.num.int <200 (0xc8)> + [1] #209.7.1.num.int <200 (0xc8)> + [2] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [3] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.7.1.num.int <4 (0x4)> + [1] #210.7.1.num.int <200 (0xc8)> + [2] #209.7.1.num.int <200 (0xc8)> + [3] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [4] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.7.1.num.int <1 (0x1)> + [1] #211.7.1.num.int <4 (0x4)> + [2] #210.7.1.num.int <200 (0xc8)> + [3] #209.7.1.num.int <200 (0xc8)> + [4] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [5] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#212.7.1.num.int +GC: --#211.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.7.1.num.int <200 (0xc8)> + [1] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [2] #206.7.1.num.int <200 (0xc8)> + [3] #210.7.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#209.7.1.num.int +GC: --#207.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.7.1.num.int <140 (0x8c)> + [1] #206.7.1.num.int <200 (0xc8)> + [2] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.7.1.num.int <3 (0x3)> + [1] #213.7.1.num.int <140 (0x8c)> + [2] #206.7.1.num.int <200 (0xc8)> + [3] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.7.1.num.int <1 (0x1)> + [1] #214.7.1.num.int <3 (0x3)> + [2] #213.7.1.num.int <140 (0x8c)> + [3] #206.7.1.num.int <200 (0xc8)> + [4] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#215.7.1.num.int +GC: --#214.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.7.1.num.int <200 (0xc8)> + [1] #210.7.1.num.int <200 (0xc8)> + [2] #213.7.1.num.int <140 (0x8c)> +IP: #196:0x19, type 8, 26[3] +GC: --#206.7.1.num.int +GC: --#210.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.7.1.num.int <400 (0x190)> + [1] #213.7.1.num.int <140 (0x8c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.7.1.num.int <140 (0x8c)> + [1] #216.7.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#213.7.1.num.int +GC: --#216.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#208.7.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0060_constants2/basic.log.ref b/tests/0060_constants2/basic.log.ref new file mode 100644 index 0000000..4080905 --- /dev/null +++ b/tests/0060_constants2/basic.log.ref @@ -0,0 +1,1049 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "123"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "123"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "123"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #0.0.nil + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #0.0.nil + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #0.0.nil + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #0.0.nil + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #0.0.nil + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #0.0.nil + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #0.0.nil + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.int <8 (0x8)> + [2] #xxxx.1.1.num.int <7 (0x7)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #0.0.nil + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <127 (0x7f)> + [1] #xxxx.1.1.num.int <9 (0x9)> + [2] #xxxx.1.1.num.int <8 (0x8)> + [3] #xxxx.1.1.num.int <7 (0x7)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #0.0.nil + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <128 (0x80)> + [1] #xxxx.1.1.num.int <127 (0x7f)> + [2] #xxxx.1.1.num.int <9 (0x9)> + [3] #xxxx.1.1.num.int <8 (0x8)> + [4] #xxxx.1.1.num.int <7 (0x7)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #0.0.nil + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <255 (0xff)> + [1] #xxxx.1.1.num.int <128 (0x80)> + [2] #xxxx.1.1.num.int <127 (0x7f)> + [3] #xxxx.1.1.num.int <9 (0x9)> + [4] #xxxx.1.1.num.int <8 (0x8)> + [5] #xxxx.1.1.num.int <7 (0x7)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #0.0.nil + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <255 (0xff)> + [2] #xxxx.1.1.num.int <128 (0x80)> + [3] #xxxx.1.1.num.int <127 (0x7f)> + [4] #xxxx.1.1.num.int <9 (0x9)> + [5] #xxxx.1.1.num.int <8 (0x8)> + [6] #xxxx.1.1.num.int <7 (0x7)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #0.0.nil + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <257 (0x101)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <255 (0xff)> + [3] #xxxx.1.1.num.int <128 (0x80)> + [4] #xxxx.1.1.num.int <127 (0x7f)> + [5] #xxxx.1.1.num.int <9 (0x9)> + [6] #xxxx.1.1.num.int <8 (0x8)> + [7] #xxxx.1.1.num.int <7 (0x7)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #0.0.nil + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <257 (0x101)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <255 (0xff)> + [4] #xxxx.1.1.num.int <128 (0x80)> + [5] #xxxx.1.1.num.int <127 (0x7f)> + [6] #xxxx.1.1.num.int <9 (0x9)> + [7] #xxxx.1.1.num.int <8 (0x8)> + [8] #xxxx.1.1.num.int <7 (0x7)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #0.0.nil + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <257 (0x101)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <255 (0xff)> + [5] #xxxx.1.1.num.int <128 (0x80)> + [6] #xxxx.1.1.num.int <127 (0x7f)> + [7] #xxxx.1.1.num.int <9 (0x9)> + [8] #xxxx.1.1.num.int <8 (0x8)> + [9] #xxxx.1.1.num.int <7 (0x7)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #0.0.nil + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [1] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <257 (0x101)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <255 (0xff)> + [6] #xxxx.1.1.num.int <128 (0x80)> + [7] #xxxx.1.1.num.int <127 (0x7f)> + [8] #xxxx.1.1.num.int <9 (0x9)> + [9] #xxxx.1.1.num.int <8 (0x8)> + [10] #xxxx.1.1.num.int <7 (0x7)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #0.0.nil + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [2] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <257 (0x101)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <255 (0xff)> + [7] #xxxx.1.1.num.int <128 (0x80)> + [8] #xxxx.1.1.num.int <127 (0x7f)> + [9] #xxxx.1.1.num.int <9 (0x9)> + [10] #xxxx.1.1.num.int <8 (0x8)> + [11] #xxxx.1.1.num.int <7 (0x7)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #0.0.nil + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [3] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <257 (0x101)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <255 (0xff)> + [8] #xxxx.1.1.num.int <128 (0x80)> + [9] #xxxx.1.1.num.int <127 (0x7f)> + [10] #xxxx.1.1.num.int <9 (0x9)> + [11] #xxxx.1.1.num.int <8 (0x8)> + [12] #xxxx.1.1.num.int <7 (0x7)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #0.0.nil + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [1] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [4] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <257 (0x101)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <255 (0xff)> + [9] #xxxx.1.1.num.int <128 (0x80)> + [10] #xxxx.1.1.num.int <127 (0x7f)> + [11] #xxxx.1.1.num.int <9 (0x9)> + [12] #xxxx.1.1.num.int <8 (0x8)> + [13] #xxxx.1.1.num.int <7 (0x7)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #0.0.nil + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [2] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [5] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <257 (0x101)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <255 (0xff)> + [10] #xxxx.1.1.num.int <128 (0x80)> + [11] #xxxx.1.1.num.int <127 (0x7f)> + [12] #xxxx.1.1.num.int <9 (0x9)> + [13] #xxxx.1.1.num.int <8 (0x8)> + [14] #xxxx.1.1.num.int <7 (0x7)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #0.0.nil + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [3] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [6] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <257 (0x101)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <255 (0xff)> + [11] #xxxx.1.1.num.int <128 (0x80)> + [12] #xxxx.1.1.num.int <127 (0x7f)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <8 (0x8)> + [15] #xxxx.1.1.num.int <7 (0x7)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> + [21] #0.0.nil + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [4] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [7] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <257 (0x101)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <255 (0xff)> + [12] #xxxx.1.1.num.int <128 (0x80)> + [13] #xxxx.1.1.num.int <127 (0x7f)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <8 (0x8)> + [16] #xxxx.1.1.num.int <7 (0x7)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.bool <0 (0x0)> + [21] #xxxx.1.1.num.bool <1 (0x1)> + [22] #0.0.nil + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [3] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [4] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [5] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [8] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <257 (0x101)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <255 (0xff)> + [13] #xxxx.1.1.num.int <128 (0x80)> + [14] #xxxx.1.1.num.int <127 (0x7f)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <8 (0x8)> + [17] #xxxx.1.1.num.int <7 (0x7)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.bool <0 (0x0)> + [22] #xxxx.1.1.num.bool <1 (0x1)> + [23] #0.0.nil + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [4] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [5] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [6] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [9] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <257 (0x101)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <255 (0xff)> + [14] #xxxx.1.1.num.int <128 (0x80)> + [15] #xxxx.1.1.num.int <127 (0x7f)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <8 (0x8)> + [18] #xxxx.1.1.num.int <7 (0x7)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.bool <0 (0x0)> + [23] #xxxx.1.1.num.bool <1 (0x1)> + [24] #0.0.nil + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, ""> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [5] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [6] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [7] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [10] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <257 (0x101)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <255 (0xff)> + [15] #xxxx.1.1.num.int <128 (0x80)> + [16] #xxxx.1.1.num.int <127 (0x7f)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <8 (0x8)> + [19] #xxxx.1.1.num.int <7 (0x7)> + [20] #xxxx.1.1.num.int <5 (0x5)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.bool <0 (0x0)> + [24] #xxxx.1.1.num.bool <1 (0x1)> + [25] #0.0.nil + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, ""> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [6] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [7] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [8] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [11] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <257 (0x101)> + [14] #xxxx.1.1.num.int <256 (0x100)> + [15] #xxxx.1.1.num.int <255 (0xff)> + [16] #xxxx.1.1.num.int <128 (0x80)> + [17] #xxxx.1.1.num.int <127 (0x7f)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <8 (0x8)> + [20] #xxxx.1.1.num.int <7 (0x7)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.bool <0 (0x0)> + [25] #xxxx.1.1.num.bool <1 (0x1)> + [26] #0.0.nil + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, ""> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [7] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [8] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [9] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [12] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <257 (0x101)> + [15] #xxxx.1.1.num.int <256 (0x100)> + [16] #xxxx.1.1.num.int <255 (0xff)> + [17] #xxxx.1.1.num.int <128 (0x80)> + [18] #xxxx.1.1.num.int <127 (0x7f)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <8 (0x8)> + [21] #xxxx.1.1.num.int <7 (0x7)> + [22] #xxxx.1.1.num.int <5 (0x5)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.bool <0 (0x0)> + [26] #xxxx.1.1.num.bool <1 (0x1)> + [27] #0.0.nil + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "0123456789a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, ""> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [8] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [9] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [10] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [13] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <257 (0x101)> + [16] #xxxx.1.1.num.int <256 (0x100)> + [17] #xxxx.1.1.num.int <255 (0xff)> + [18] #xxxx.1.1.num.int <128 (0x80)> + [19] #xxxx.1.1.num.int <127 (0x7f)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <8 (0x8)> + [22] #xxxx.1.1.num.int <7 (0x7)> + [23] #xxxx.1.1.num.int <5 (0x5)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.bool <0 (0x0)> + [27] #xxxx.1.1.num.bool <1 (0x1)> + [28] #0.0.nil + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "0123456789ab"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "0123456789a"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "a"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, ""> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [9] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [10] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [11] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [14] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <257 (0x101)> + [17] #xxxx.1.1.num.int <256 (0x100)> + [18] #xxxx.1.1.num.int <255 (0xff)> + [19] #xxxx.1.1.num.int <128 (0x80)> + [20] #xxxx.1.1.num.int <127 (0x7f)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <8 (0x8)> + [23] #xxxx.1.1.num.int <7 (0x7)> + [24] #xxxx.1.1.num.int <5 (0x5)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #xxxx.1.1.num.bool <0 (0x0)> + [28] #xxxx.1.1.num.bool <1 (0x1)> + [29] #0.0.nil + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abcdefsghlertert"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "0123456789ab"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "0123456789a"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "a"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, ""> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [10] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [11] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [12] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [15] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <257 (0x101)> + [18] #xxxx.1.1.num.int <256 (0x100)> + [19] #xxxx.1.1.num.int <255 (0xff)> + [20] #xxxx.1.1.num.int <128 (0x80)> + [21] #xxxx.1.1.num.int <127 (0x7f)> + [22] #xxxx.1.1.num.int <9 (0x9)> + [23] #xxxx.1.1.num.int <8 (0x8)> + [24] #xxxx.1.1.num.int <7 (0x7)> + [25] #xxxx.1.1.num.int <5 (0x5)> + [26] #xxxx.1.1.num.int <1 (0x1)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.bool <0 (0x0)> + [29] #xxxx.1.1.num.bool <1 (0x1)> + [30] #0.0.nil + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abcdefsghlertert"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "0123456789ab"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "0123456789a"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, ""> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [11] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [12] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [13] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [16] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <257 (0x101)> + [19] #xxxx.1.1.num.int <256 (0x100)> + [20] #xxxx.1.1.num.int <255 (0xff)> + [21] #xxxx.1.1.num.int <128 (0x80)> + [22] #xxxx.1.1.num.int <127 (0x7f)> + [23] #xxxx.1.1.num.int <9 (0x9)> + [24] #xxxx.1.1.num.int <8 (0x8)> + [25] #xxxx.1.1.num.int <7 (0x7)> + [26] #xxxx.1.1.num.int <5 (0x5)> + [27] #xxxx.1.1.num.int <1 (0x1)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #xxxx.1.1.num.bool <0 (0x0)> + [30] #xxxx.1.1.num.bool <1 (0x1)> + [31] #0.0.nil + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abcdefsghlertert"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "0123456789ab"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "0123456789a"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, ""> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [12] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [13] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [14] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [17] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <257 (0x101)> + [20] #xxxx.1.1.num.int <256 (0x100)> + [21] #xxxx.1.1.num.int <255 (0xff)> + [22] #xxxx.1.1.num.int <128 (0x80)> + [23] #xxxx.1.1.num.int <127 (0x7f)> + [24] #xxxx.1.1.num.int <9 (0x9)> + [25] #xxxx.1.1.num.int <8 (0x8)> + [26] #xxxx.1.1.num.int <7 (0x7)> + [27] #xxxx.1.1.num.int <5 (0x5)> + [28] #xxxx.1.1.num.int <1 (0x1)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #xxxx.1.1.num.bool <0 (0x0)> + [31] #xxxx.1.1.num.bool <1 (0x1)> + [32] #0.0.nil + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abcdefsghlertert"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "0123456789ab"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "0123456789a"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, ""> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [13] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [14] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [15] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [18] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <257 (0x101)> + [21] #xxxx.1.1.num.int <256 (0x100)> + [22] #xxxx.1.1.num.int <255 (0xff)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <8 (0x8)> + [27] #xxxx.1.1.num.int <7 (0x7)> + [28] #xxxx.1.1.num.int <5 (0x5)> + [29] #xxxx.1.1.num.int <1 (0x1)> + [30] #xxxx.1.1.num.int <0 (0x0)> + [31] #xxxx.1.1.num.bool <0 (0x0)> + [32] #xxxx.1.1.num.bool <1 (0x1)> + [33] #0.0.nil + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.14.mem.ro, "foo"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abcdefsghlertert"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "0123456789ab"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "0123456789a"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, ""> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [14] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [15] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [16] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [19] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <257 (0x101)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <255 (0xff)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <9 (0x9)> + [27] #xxxx.1.1.num.int <8 (0x8)> + [28] #xxxx.1.1.num.int <7 (0x7)> + [29] #xxxx.1.1.num.int <5 (0x5)> + [30] #xxxx.1.1.num.int <1 (0x1)> + [31] #xxxx.1.1.num.int <0 (0x0)> + [32] #xxxx.1.1.num.bool <0 (0x0)> + [33] #xxxx.1.1.num.bool <1 (0x1)> + [34] #0.0.nil + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> +GC: ++#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.15.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.15.mem.ro, "foo"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abcdefsghlertert"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "0123456789ab"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "0123456789a"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, ""> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [15] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [16] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [17] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <257 (0x101)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <255 (0xff)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <9 (0x9)> + [28] #xxxx.1.1.num.int <8 (0x8)> + [29] #xxxx.1.1.num.int <7 (0x7)> + [30] #xxxx.1.1.num.int <5 (0x5)> + [31] #xxxx.1.1.num.int <1 (0x1)> + [32] #xxxx.1.1.num.int <0 (0x0)> + [33] #xxxx.1.1.num.bool <0 (0x0)> + [34] #xxxx.1.1.num.bool <1 (0x1)> + [35] #0.0.nil + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> +GC: ++#xxxx.1.15.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.16.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.16.mem.ro> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.16.mem.ro, "foo"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abcdefsghlertert"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "0123456789ab"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "0123456789a"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "a"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, ""> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [16] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [17] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [21] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <257 (0x101)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <255 (0xff)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <9 (0x9)> + [29] #xxxx.1.1.num.int <8 (0x8)> + [30] #xxxx.1.1.num.int <7 (0x7)> + [31] #xxxx.1.1.num.int <5 (0x5)> + [32] #xxxx.1.1.num.int <1 (0x1)> + [33] #xxxx.1.1.num.int <0 (0x0)> + [34] #xxxx.1.1.num.bool <0 (0x0)> + [35] #xxxx.1.1.num.bool <1 (0x1)> + [36] #0.0.nil + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> +GC: ++#xxxx.1.16.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.17.mem.ro, "foo"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abcdefsghlertert"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789ab"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "a"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, ""> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <257 (0x101)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <255 (0xff)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <9 (0x9)> + [30] #xxxx.1.1.num.int <8 (0x8)> + [31] #xxxx.1.1.num.int <7 (0x7)> + [32] #xxxx.1.1.num.int <5 (0x5)> + [33] #xxxx.1.1.num.int <1 (0x1)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [40] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.17.mem.ro, "foo"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abcdefsghlertert"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789ab"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "a"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, ""> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <257 (0x101)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <255 (0xff)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <9 (0x9)> + [30] #xxxx.1.1.num.int <8 (0x8)> + [31] #xxxx.1.1.num.int <7 (0x7)> + [32] #xxxx.1.1.num.int <5 (0x5)> + [33] #xxxx.1.1.num.int <1 (0x1)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [40] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> +error 2 (invalid instruction), ip = #186 diff --git a/tests/0060_constants2/code.log.ref b/tests/0060_constants2/code.log.ref new file mode 100644 index 0000000..58aded6 --- /dev/null +++ b/tests/0060_constants2/code.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c str 37 31 32 33 "123" + 3 3 0x00010 str 37 31 32 33 "123" + 4 4 0x00014 nil 00 nil + 5 5 0x00015 bool 12 true + 6 0x00016 bool 02 false + 6 7 0x00017 int 01 0 + 8 0x00018 int 11 1 + 9 0x00019 int 51 5 + 10 0x0001a int 71 7 + 11 0x0001b int 81 08 8 + 12 0x0001d int 81 09 9 + 13 0x0001f int 81 7f 127 + 14 0x00021 int 91 80 00 128 + 15 0x00024 int 91 ff 00 255 + 16 0x00027 int 91 00 01 256 + 17 0x0002a int 91 01 01 257 + 7 18 0x0002d int 81 ff -1 + 19 0x0002f int 81 fb -5 + 20 0x00031 int 81 81 -127 + 21 0x00033 int 81 80 -128 + 22 0x00035 int 91 7f ff -129 + 23 0x00038 int 91 01 ff -255 + 24 0x0003b int 91 00 ff -256 + 25 0x0003e int 91 ff fe -257 + 9 26 0x00041 int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x0004a int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x00053 int 81 ff 0xffffffffffffffff + 12 29 0x00055 str 07 "" + 30 0x00056 str 17 61 "a" + 31 0x00058 str 37 61 62 63 "abc" + 32 0x0005c str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00068 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00076 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00088 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x0018b str 37 61 62 63 "abc" + 15 37 0x0018f str 37 61 62 63 "abc" + 16 38 0x00193 ref 39 66 6f 6f /foo + 39 0x00197 code 56 { + 40 0x00198 int 81 0a 10 + 41 0x0019a int 81 14 20 + 42 0x0019c prim 13 } + 43 0x0019d code a6 { + 44 0x0019e int 81 64 100 + 45 0x001a0 int 91 2c 01 300 + 46 0x001a3 int 91 90 01 400 + 47 0x001a6 int 01 0 + 48 0x001a7 prim 13 } + 49 0x001a8 code b6 { + 50 0x001a9 int 81 64 100 + 51 0x001ab int 91 2c 01 300 + 52 0x001ae int 91 90 01 400 + 53 0x001b1 int 81 0a 10 + 54 0x001b3 prim 13 } + 55 0x001b4 word 38 64 65 66 def diff --git a/tests/0060_constants2/code1.log.ref b/tests/0060_constants2/code1.log.ref new file mode 100644 index 0000000..2425e47 --- /dev/null +++ b/tests/0060_constants2/code1.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c xref 44 "123" + 3 3 0x0000d xref 54 "123" + 4 4 0x0000e nil 00 nil + 5 5 0x0000f bool 12 true + 6 0x00010 bool 02 false + 6 7 0x00011 int 01 0 + 8 0x00012 int 11 1 + 9 0x00013 int 51 5 + 10 0x00014 int 71 7 + 11 0x00015 int 81 08 8 + 12 0x00017 int 81 09 9 + 13 0x00019 int 81 7f 127 + 14 0x0001b int 91 80 00 128 + 15 0x0001e int 91 ff 00 255 + 16 0x00021 int 91 00 01 256 + 17 0x00024 int 91 01 01 257 + 7 18 0x00027 int 81 ff -1 + 19 0x00029 int 81 fb -5 + 20 0x0002b int 81 81 -127 + 21 0x0002d int 81 80 -128 + 22 0x0002f int 91 7f ff -129 + 23 0x00032 int 91 01 ff -255 + 24 0x00035 int 91 00 ff -256 + 25 0x00038 int 91 ff fe -257 + 9 26 0x0003b int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x00044 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x0004d int 81 ff 0xffffffffffffffff + 12 29 0x0004f str 07 "" + 30 0x00050 str 17 61 "a" + 31 0x00052 str 37 61 62 63 "abc" + 32 0x00056 str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00062 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00070 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00082 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x00185 xref 94 33 01 "abc" + 15 37 0x00188 xref 94 36 01 "abc" + 16 38 0x0018b ref 39 66 6f 6f /foo + 39 0x0018f code 56 { + 40 0x00190 int 81 0a 10 + 41 0x00192 int 81 14 20 + 42 0x00194 prim 13 } + 43 0x00195 code a6 { + 44 0x00196 int 81 64 100 + 45 0x00198 int 91 2c 01 300 + 46 0x0019b int 91 90 01 400 + 47 0x0019e int 01 0 + 48 0x0019f prim 13 } + 49 0x001a0 code b6 { + 50 0x001a1 int 81 64 100 + 51 0x001a3 int 91 2c 01 300 + 52 0x001a6 int 91 90 01 400 + 53 0x001a9 int 81 0a 10 + 54 0x001ab prim 13 } + 55 0x001ac word 38 64 65 66 def diff --git a/tests/0060_constants2/code2.log.ref b/tests/0060_constants2/code2.log.ref new file mode 100644 index 0000000..25a0b2b --- /dev/null +++ b/tests/0060_constants2/code2.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c xref 44 "123" + 3 3 0x0000d xref 54 "123" + 4 4 0x0000e nil 00 nil + 5 5 0x0000f bool 12 true + 6 0x00010 bool 02 false + 6 7 0x00011 int 01 0 + 8 0x00012 int 11 1 + 9 0x00013 int 51 5 + 10 0x00014 int 71 7 + 11 0x00015 int 81 08 8 + 12 0x00017 int 81 09 9 + 13 0x00019 int 81 7f 127 + 14 0x0001b int 91 80 00 128 + 15 0x0001e int 91 ff 00 255 + 16 0x00021 int 91 00 01 256 + 17 0x00024 int 91 01 01 257 + 7 18 0x00027 int 81 ff -1 + 19 0x00029 int 81 fb -5 + 20 0x0002b int 81 81 -127 + 21 0x0002d int 81 80 -128 + 22 0x0002f int 91 7f ff -129 + 23 0x00032 int 91 01 ff -255 + 24 0x00035 int 91 00 ff -256 + 25 0x00038 int 91 ff fe -257 + 9 26 0x0003b int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x00044 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x0004d int 81 ff 0xffffffffffffffff + 12 29 0x0004f str 07 "" + 30 0x00050 str 17 61 "a" + 31 0x00052 str 37 61 62 63 "abc" + 32 0x00056 str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00062 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00070 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00082 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x00185 xref 94 33 01 "abc" + 15 37 0x00188 xref 94 36 01 "abc" + 16 38 0x0018b ref 39 66 6f 6f /foo + 39 0x0018f code 56 { + 40 0x00190 int 81 0a 10 + 41 0x00192 int 81 14 20 + 42 0x00194 prim 13 } + 43 0x00195 code a6 { + 44 0x00196 int 81 64 100 + 45 0x00198 int 91 2c 01 300 + 46 0x0019b int 91 90 01 400 + 47 0x0019e int 01 0 + 48 0x0019f prim 13 } + 49 0x001a0 code b6 { + 50 0x001a1 int 81 64 100 + 51 0x001a3 int 91 2c 01 300 + 52 0x001a6 int 91 90 01 400 + 53 0x001a9 int 81 0a 10 + 54 0x001ab prim 13 } + 55 0x001ac prim 63 def diff --git a/tests/0060_constants2/main.gs b/tests/0060_constants2/main.gs new file mode 100644 index 0000000..e5a7ea2 --- /dev/null +++ b/tests/0060_constants2/main.gs @@ -0,0 +1,16 @@ +"123" +"123" +"123" +nil +true false +0 1 5 7 8 9 127 128 255 256 257 +-1 -5 -127 -128 -129 -255 -256 -257 +# 0123456701234567 + 0x8000000000000000 +-0x8000000000000000 + 0xffffffffffffffff +"" "a" "abc" "0123456789a" "0123456789ab" "abcdefsghlertert" +"hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" +"abc" +"abc" +/foo { 10 20 } { 100 300 400 0 } { 100 300 400 10 } def diff --git a/tests/0060_constants2/mem.log.ref b/tests/0060_constants2/mem.log.ref new file mode 100644 index 0000000..c1aec94 --- /dev/null +++ b/tests/0060_constants2/mem.log.ref @@ -0,0 +1,890 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 440] + 8: 0.00, 0x001d6c2c[ 72] + 9: 188.01, 0x001d6c7c[ 56] + 10: 0.00, 0x001d6cbc[ 144] + 11: 187.01, 0x001d6d54[ 224] + 12: 0.00, 0x001d6e3c[14848452] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.17.mem.ro + 75 51 12 a9 42 7a ad 60 37 31 32 33 37 31 32 33 uQ..Bz.`71237123 + 37 31 32 33 00 12 02 01 11 51 71 81 08 81 09 81 7123.....Qq..... + 7f 91 80 00 91 ff 00 91 00 01 91 01 01 81 ff 81 ................ + fb 81 81 81 80 91 7f ff 91 01 ff 91 00 ff 91 ff ................ + fe f1 00 00 00 00 00 00 00 80 f1 00 00 00 00 00 ................ + 00 00 80 81 ff 07 17 61 37 61 62 63 b7 30 31 32 .......a7abc.012 + 33 34 35 36 37 38 39 61 c7 0c 30 31 32 33 34 35 3456789a..012345 + 36 37 38 39 61 62 c7 10 61 62 63 64 65 66 73 67 6789ab..abcdefsg + 68 6c 65 72 74 65 72 74 d7 00 01 68 6a 67 66 61 hlertert...hjgfa + 68 6a 67 73 64 66 61 68 6a 67 73 64 66 61 68 6a hjgsdfahjgsdfahj + 67 73 66 64 6a 68 61 73 66 64 61 64 66 73 6a 68 gsfdjhasfdadfsjh + 61 6a 73 64 68 66 61 64 6a 68 73 64 66 68 61 6a ajsdhfadjhsdfhaj + 73 64 61 6a 68 61 73 64 66 67 61 73 64 66 67 61 sdajhasdfgasdfga + 6a 6b 73 64 67 66 6b 6a 61 73 64 67 66 61 73 64 jksdgfkjasdgfasd + 66 6a 6b 61 73 64 67 66 61 73 6b 64 66 6b 61 73 fjkasdgfaskdfkas + 6a 64 67 66 6b 6a 61 61 73 64 66 61 73 64 66 6a jdgfkjaasdfasdfj + 6b 61 73 64 67 66 6b 6a 61 73 68 64 67 66 6a 6b kasdgfkjashdgfjk + 61 73 64 67 66 6a 68 61 73 64 67 66 6a 61 6b 73 asdgfjhasdgfjaks + 67 64 66 6b 6a 61 73 64 67 66 6b 61 6a 73 64 67 gdfkjasdgfkajsdg + 66 6b 6a 61 73 64 67 66 6b 6a 61 73 64 66 67 6b fkjasdgfkjasdfgk + 6a 61 73 64 66 68 67 61 6b 73 6a 64 66 61 73 64 jasdfhgaksjdfasd + 6b 66 6a 61 73 64 67 66 6b 73 61 6a 64 68 66 67 kfjasdgfksajdhfg + 6b 61 6a 73 64 68 67 66 6a 6b 61 73 64 67 66 6a kajsdhgfjkasdgfj + 6b 61 73 64 67 66 6b 6a 61 73 6a 6b 61 73 64 67 kasdgfkjasjkasdg + 66 6b 6a 61 73 64 66 6b 64 64 73 37 61 62 63 37 fkjasdfkdds7abc7 + 61 62 63 39 66 6f 6f 56 81 0a 81 14 13 a6 81 64 abc9fooV.......d + 91 2c 01 91 90 01 01 13 b6 81 64 91 2c 01 91 90 .,........d.,... + 01 81 0a 13 38 64 65 66 ....8def + #187.1.1.array + [ 0] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> + [ 1] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [ 2] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [ 3] #0.0.nil + [ 4] #192.1.1.num.bool <1 (0x1)> + [ 5] #193.1.1.num.bool <0 (0x0)> + [ 6] #194.1.1.num.int <0 (0x0)> + [ 7] #195.1.1.num.int <1 (0x1)> + [ 8] #196.1.1.num.int <5 (0x5)> + [ 9] #197.1.1.num.int <7 (0x7)> + [10] #198.1.1.num.int <8 (0x8)> + [11] #199.1.1.num.int <9 (0x9)> + [12] #200.1.1.num.int <127 (0x7f)> + [13] #201.1.1.num.int <128 (0x80)> + [14] #202.1.1.num.int <255 (0xff)> + [15] #203.1.1.num.int <256 (0x100)> + [16] #204.1.1.num.int <257 (0x101)> + [17] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [23] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [24] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [25] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [27] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [29] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [30] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [31] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [32] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [33] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [34] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [35] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [36] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [37] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [38] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [39] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [40] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + #188.1.1.ctx.func + type 17, ip 0x1b8 (0x1b4) + code #186.1.17.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> + 31 32 33 123 + #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + 31 32 33 123 + #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + 31 32 33 123 + #192.1.1.num.bool <1 (0x1)> + #193.1.1.num.bool <0 (0x0)> + #194.1.1.num.int <0 (0x0)> + #195.1.1.num.int <1 (0x1)> + #196.1.1.num.int <5 (0x5)> + #197.1.1.num.int <7 (0x7)> + #198.1.1.num.int <8 (0x8)> + #199.1.1.num.int <9 (0x9)> + #200.1.1.num.int <127 (0x7f)> + #201.1.1.num.int <128 (0x80)> + #202.1.1.num.int <255 (0xff)> + #203.1.1.num.int <256 (0x100)> + #204.1.1.num.int <257 (0x101)> + #205.1.1.num.int <-1 (0xffffffffffffffff)> + #206.1.1.num.int <-5 (0xfffffffffffffffb)> + #207.1.1.num.int <-127 (0xffffffffffffff81)> + #208.1.1.num.int <-128 (0xffffffffffffff80)> + #209.1.1.num.int <-129 (0xffffffffffffff7f)> + #210.1.1.num.int <-255 (0xffffffffffffff01)> + #211.1.1.num.int <-256 (0xffffffffffffff00)> + #212.1.1.num.int <-257 (0xfffffffffffffeff)> + #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #215.1.1.num.int <-1 (0xffffffffffffffff)> + #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + + #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + 61 a + #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + 61 62 63 abc + #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + 30 31 32 33 34 35 36 37 38 39 61 0123456789a + #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + 30 31 32 33 34 35 36 37 38 39 61 62 0123456789ab + #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + 61 62 63 64 65 66 73 67 68 6c 65 72 74 65 72 74 abcdefsghlertert + #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + 68 6a 67 66 61 68 6a 67 73 64 66 61 68 6a 67 73 hjgfahjgsdfahjgs + 64 66 61 68 6a 67 73 66 64 6a 68 61 73 66 64 61 dfahjgsfdjhasfda + 64 66 73 6a 68 61 6a 73 64 68 66 61 64 6a 68 73 dfsjhajsdhfadjhs + 64 66 68 61 6a 73 64 61 6a 68 61 73 64 66 67 61 dfhajsdajhasdfga + 73 64 66 67 61 6a 6b 73 64 67 66 6b 6a 61 73 64 sdfgajksdgfkjasd + 67 66 61 73 64 66 6a 6b 61 73 64 67 66 61 73 6b gfasdfjkasdgfask + 64 66 6b 61 73 6a 64 67 66 6b 6a 61 61 73 64 66 dfkasjdgfkjaasdf + 61 73 64 66 6a 6b 61 73 64 67 66 6b 6a 61 73 68 asdfjkasdgfkjash + 64 67 66 6a 6b 61 73 64 67 66 6a 68 61 73 64 67 dgfjkasdgfjhasdg + 66 6a 61 6b 73 67 64 66 6b 6a 61 73 64 67 66 6b fjaksgdfkjasdgfk + 61 6a 73 64 67 66 6b 6a 61 73 64 67 66 6b 6a 61 ajsdgfkjasdgfkja + 73 64 66 67 6b 6a 61 73 64 66 68 67 61 6b 73 6a sdfgkjasdfhgaksj + 64 66 61 73 64 6b 66 6a 61 73 64 67 66 6b 73 61 dfasdkfjasdgfksa + 6a 64 68 66 67 6b 61 6a 73 64 68 67 66 6a 6b 61 jdhfgkajsdhgfjka + 73 64 67 66 6a 6b 61 73 64 67 66 6b 6a 61 73 6a sdgfjkasdgfkjasj + 6b 61 73 64 67 66 6b 6a 61 73 64 66 6b 64 64 73 kasdgfkjasdfkdds + #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + 61 62 63 abc + #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + 61 62 63 abc + #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + 66 6f 6f foo + #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + 81 0a 81 14 13 ..... + #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + 81 64 91 2c 01 91 90 01 01 13 .d.,...... + #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + 81 64 91 2c 01 91 90 01 81 0a 13 .d.,....... diff --git a/tests/0060_constants2/screen.log.ref b/tests/0060_constants2/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0060_constants2/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0060_constants2/trace.log.ref b/tests/0060_constants2/trace.log.ref new file mode 100644 index 0000000..cebdebd --- /dev/null +++ b/tests/0060_constants2/trace.log.ref @@ -0,0 +1,1092 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 7, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0xc, type 7, 13[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 3, "123"> + [1] #189.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x10, type 7, 17[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [1] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [2] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x14, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [3] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.bool <1 (0x1)> + [1] #0.0.nil + [2] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [4] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x16, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <0 (0x0)> + [1] #192.1.1.num.bool <1 (0x1)> + [2] #0.0.nil + [3] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [4] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [5] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x17, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.bool <0 (0x0)> + [2] #192.1.1.num.bool <1 (0x1)> + [3] #0.0.nil + [4] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [5] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [6] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <1 (0x1)> + [1] #194.1.1.num.int <0 (0x0)> + [2] #193.1.1.num.bool <0 (0x0)> + [3] #192.1.1.num.bool <1 (0x1)> + [4] #0.0.nil + [5] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [6] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [7] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x19, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <5 (0x5)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #194.1.1.num.int <0 (0x0)> + [3] #193.1.1.num.bool <0 (0x0)> + [4] #192.1.1.num.bool <1 (0x1)> + [5] #0.0.nil + [6] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [7] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [8] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1a, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <7 (0x7)> + [1] #196.1.1.num.int <5 (0x5)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #194.1.1.num.int <0 (0x0)> + [4] #193.1.1.num.bool <0 (0x0)> + [5] #192.1.1.num.bool <1 (0x1)> + [6] #0.0.nil + [7] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [8] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [9] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1b, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <8 (0x8)> + [1] #197.1.1.num.int <7 (0x7)> + [2] #196.1.1.num.int <5 (0x5)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #194.1.1.num.int <0 (0x0)> + [5] #193.1.1.num.bool <0 (0x0)> + [6] #192.1.1.num.bool <1 (0x1)> + [7] #0.0.nil + [8] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [9] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [10] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1d, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <9 (0x9)> + [1] #198.1.1.num.int <8 (0x8)> + [2] #197.1.1.num.int <7 (0x7)> + [3] #196.1.1.num.int <5 (0x5)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #194.1.1.num.int <0 (0x0)> + [6] #193.1.1.num.bool <0 (0x0)> + [7] #192.1.1.num.bool <1 (0x1)> + [8] #0.0.nil + [9] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [10] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [11] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1f, type 1, 127 (0x7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <127 (0x7f)> + [1] #199.1.1.num.int <9 (0x9)> + [2] #198.1.1.num.int <8 (0x8)> + [3] #197.1.1.num.int <7 (0x7)> + [4] #196.1.1.num.int <5 (0x5)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #194.1.1.num.int <0 (0x0)> + [7] #193.1.1.num.bool <0 (0x0)> + [8] #192.1.1.num.bool <1 (0x1)> + [9] #0.0.nil + [10] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [11] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [12] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x21, type 1, 128 (0x80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <128 (0x80)> + [1] #200.1.1.num.int <127 (0x7f)> + [2] #199.1.1.num.int <9 (0x9)> + [3] #198.1.1.num.int <8 (0x8)> + [4] #197.1.1.num.int <7 (0x7)> + [5] #196.1.1.num.int <5 (0x5)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #194.1.1.num.int <0 (0x0)> + [8] #193.1.1.num.bool <0 (0x0)> + [9] #192.1.1.num.bool <1 (0x1)> + [10] #0.0.nil + [11] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [12] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [13] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x24, type 1, 255 (0xff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <255 (0xff)> + [1] #201.1.1.num.int <128 (0x80)> + [2] #200.1.1.num.int <127 (0x7f)> + [3] #199.1.1.num.int <9 (0x9)> + [4] #198.1.1.num.int <8 (0x8)> + [5] #197.1.1.num.int <7 (0x7)> + [6] #196.1.1.num.int <5 (0x5)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #194.1.1.num.int <0 (0x0)> + [9] #193.1.1.num.bool <0 (0x0)> + [10] #192.1.1.num.bool <1 (0x1)> + [11] #0.0.nil + [12] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [13] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [14] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x27, type 1, 256 (0x100) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <256 (0x100)> + [1] #202.1.1.num.int <255 (0xff)> + [2] #201.1.1.num.int <128 (0x80)> + [3] #200.1.1.num.int <127 (0x7f)> + [4] #199.1.1.num.int <9 (0x9)> + [5] #198.1.1.num.int <8 (0x8)> + [6] #197.1.1.num.int <7 (0x7)> + [7] #196.1.1.num.int <5 (0x5)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #194.1.1.num.int <0 (0x0)> + [10] #193.1.1.num.bool <0 (0x0)> + [11] #192.1.1.num.bool <1 (0x1)> + [12] #0.0.nil + [13] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [14] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [15] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2a, type 1, 257 (0x101) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <257 (0x101)> + [1] #203.1.1.num.int <256 (0x100)> + [2] #202.1.1.num.int <255 (0xff)> + [3] #201.1.1.num.int <128 (0x80)> + [4] #200.1.1.num.int <127 (0x7f)> + [5] #199.1.1.num.int <9 (0x9)> + [6] #198.1.1.num.int <8 (0x8)> + [7] #197.1.1.num.int <7 (0x7)> + [8] #196.1.1.num.int <5 (0x5)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #194.1.1.num.int <0 (0x0)> + [11] #193.1.1.num.bool <0 (0x0)> + [12] #192.1.1.num.bool <1 (0x1)> + [13] #0.0.nil + [14] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [15] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [16] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2d, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #204.1.1.num.int <257 (0x101)> + [2] #203.1.1.num.int <256 (0x100)> + [3] #202.1.1.num.int <255 (0xff)> + [4] #201.1.1.num.int <128 (0x80)> + [5] #200.1.1.num.int <127 (0x7f)> + [6] #199.1.1.num.int <9 (0x9)> + [7] #198.1.1.num.int <8 (0x8)> + [8] #197.1.1.num.int <7 (0x7)> + [9] #196.1.1.num.int <5 (0x5)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #194.1.1.num.int <0 (0x0)> + [12] #193.1.1.num.bool <0 (0x0)> + [13] #192.1.1.num.bool <1 (0x1)> + [14] #0.0.nil + [15] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [16] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [17] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2f, type 1, -5 (0xfffffffffffffffb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <257 (0x101)> + [3] #203.1.1.num.int <256 (0x100)> + [4] #202.1.1.num.int <255 (0xff)> + [5] #201.1.1.num.int <128 (0x80)> + [6] #200.1.1.num.int <127 (0x7f)> + [7] #199.1.1.num.int <9 (0x9)> + [8] #198.1.1.num.int <8 (0x8)> + [9] #197.1.1.num.int <7 (0x7)> + [10] #196.1.1.num.int <5 (0x5)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #194.1.1.num.int <0 (0x0)> + [13] #193.1.1.num.bool <0 (0x0)> + [14] #192.1.1.num.bool <1 (0x1)> + [15] #0.0.nil + [16] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [17] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [18] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x31, type 1, -127 (0xffffffffffffff81) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [1] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [2] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <257 (0x101)> + [4] #203.1.1.num.int <256 (0x100)> + [5] #202.1.1.num.int <255 (0xff)> + [6] #201.1.1.num.int <128 (0x80)> + [7] #200.1.1.num.int <127 (0x7f)> + [8] #199.1.1.num.int <9 (0x9)> + [9] #198.1.1.num.int <8 (0x8)> + [10] #197.1.1.num.int <7 (0x7)> + [11] #196.1.1.num.int <5 (0x5)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #194.1.1.num.int <0 (0x0)> + [14] #193.1.1.num.bool <0 (0x0)> + [15] #192.1.1.num.bool <1 (0x1)> + [16] #0.0.nil + [17] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [18] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [19] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x33, type 1, -128 (0xffffffffffffff80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [2] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [3] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <257 (0x101)> + [5] #203.1.1.num.int <256 (0x100)> + [6] #202.1.1.num.int <255 (0xff)> + [7] #201.1.1.num.int <128 (0x80)> + [8] #200.1.1.num.int <127 (0x7f)> + [9] #199.1.1.num.int <9 (0x9)> + [10] #198.1.1.num.int <8 (0x8)> + [11] #197.1.1.num.int <7 (0x7)> + [12] #196.1.1.num.int <5 (0x5)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #194.1.1.num.int <0 (0x0)> + [15] #193.1.1.num.bool <0 (0x0)> + [16] #192.1.1.num.bool <1 (0x1)> + [17] #0.0.nil + [18] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [19] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [20] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x35, type 1, -129 (0xffffffffffffff7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [3] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [4] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <257 (0x101)> + [6] #203.1.1.num.int <256 (0x100)> + [7] #202.1.1.num.int <255 (0xff)> + [8] #201.1.1.num.int <128 (0x80)> + [9] #200.1.1.num.int <127 (0x7f)> + [10] #199.1.1.num.int <9 (0x9)> + [11] #198.1.1.num.int <8 (0x8)> + [12] #197.1.1.num.int <7 (0x7)> + [13] #196.1.1.num.int <5 (0x5)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #194.1.1.num.int <0 (0x0)> + [16] #193.1.1.num.bool <0 (0x0)> + [17] #192.1.1.num.bool <1 (0x1)> + [18] #0.0.nil + [19] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [20] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [21] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x38, type 1, -255 (0xffffffffffffff01) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [1] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [4] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [5] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <257 (0x101)> + [7] #203.1.1.num.int <256 (0x100)> + [8] #202.1.1.num.int <255 (0xff)> + [9] #201.1.1.num.int <128 (0x80)> + [10] #200.1.1.num.int <127 (0x7f)> + [11] #199.1.1.num.int <9 (0x9)> + [12] #198.1.1.num.int <8 (0x8)> + [13] #197.1.1.num.int <7 (0x7)> + [14] #196.1.1.num.int <5 (0x5)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #194.1.1.num.int <0 (0x0)> + [17] #193.1.1.num.bool <0 (0x0)> + [18] #192.1.1.num.bool <1 (0x1)> + [19] #0.0.nil + [20] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [21] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [22] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x3b, type 1, -256 (0xffffffffffffff00) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [2] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [5] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [6] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <257 (0x101)> + [8] #203.1.1.num.int <256 (0x100)> + [9] #202.1.1.num.int <255 (0xff)> + [10] #201.1.1.num.int <128 (0x80)> + [11] #200.1.1.num.int <127 (0x7f)> + [12] #199.1.1.num.int <9 (0x9)> + [13] #198.1.1.num.int <8 (0x8)> + [14] #197.1.1.num.int <7 (0x7)> + [15] #196.1.1.num.int <5 (0x5)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #194.1.1.num.int <0 (0x0)> + [18] #193.1.1.num.bool <0 (0x0)> + [19] #192.1.1.num.bool <1 (0x1)> + [20] #0.0.nil + [21] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [22] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [23] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x3e, type 1, -257 (0xfffffffffffffeff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [1] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [3] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [6] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [7] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <257 (0x101)> + [9] #203.1.1.num.int <256 (0x100)> + [10] #202.1.1.num.int <255 (0xff)> + [11] #201.1.1.num.int <128 (0x80)> + [12] #200.1.1.num.int <127 (0x7f)> + [13] #199.1.1.num.int <9 (0x9)> + [14] #198.1.1.num.int <8 (0x8)> + [15] #197.1.1.num.int <7 (0x7)> + [16] #196.1.1.num.int <5 (0x5)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #194.1.1.num.int <0 (0x0)> + [19] #193.1.1.num.bool <0 (0x0)> + [20] #192.1.1.num.bool <1 (0x1)> + [21] #0.0.nil + [22] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [23] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [24] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x41, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [2] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [4] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [7] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [8] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <257 (0x101)> + [10] #203.1.1.num.int <256 (0x100)> + [11] #202.1.1.num.int <255 (0xff)> + [12] #201.1.1.num.int <128 (0x80)> + [13] #200.1.1.num.int <127 (0x7f)> + [14] #199.1.1.num.int <9 (0x9)> + [15] #198.1.1.num.int <8 (0x8)> + [16] #197.1.1.num.int <7 (0x7)> + [17] #196.1.1.num.int <5 (0x5)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #194.1.1.num.int <0 (0x0)> + [20] #193.1.1.num.bool <0 (0x0)> + [21] #192.1.1.num.bool <1 (0x1)> + [22] #0.0.nil + [23] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [24] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [25] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x4a, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [3] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [4] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [5] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [8] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [9] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <257 (0x101)> + [11] #203.1.1.num.int <256 (0x100)> + [12] #202.1.1.num.int <255 (0xff)> + [13] #201.1.1.num.int <128 (0x80)> + [14] #200.1.1.num.int <127 (0x7f)> + [15] #199.1.1.num.int <9 (0x9)> + [16] #198.1.1.num.int <8 (0x8)> + [17] #197.1.1.num.int <7 (0x7)> + [18] #196.1.1.num.int <5 (0x5)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #194.1.1.num.int <0 (0x0)> + [21] #193.1.1.num.bool <0 (0x0)> + [22] #192.1.1.num.bool <1 (0x1)> + [23] #0.0.nil + [24] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [25] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [26] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x53, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [4] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [5] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [6] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [9] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [10] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <257 (0x101)> + [12] #203.1.1.num.int <256 (0x100)> + [13] #202.1.1.num.int <255 (0xff)> + [14] #201.1.1.num.int <128 (0x80)> + [15] #200.1.1.num.int <127 (0x7f)> + [16] #199.1.1.num.int <9 (0x9)> + [17] #198.1.1.num.int <8 (0x8)> + [18] #197.1.1.num.int <7 (0x7)> + [19] #196.1.1.num.int <5 (0x5)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #194.1.1.num.int <0 (0x0)> + [22] #193.1.1.num.bool <0 (0x0)> + [23] #192.1.1.num.bool <1 (0x1)> + [24] #0.0.nil + [25] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [26] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [27] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x56, size 0, ""> + [1] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [5] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [6] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [7] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [10] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [11] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <257 (0x101)> + [13] #203.1.1.num.int <256 (0x100)> + [14] #202.1.1.num.int <255 (0xff)> + [15] #201.1.1.num.int <128 (0x80)> + [16] #200.1.1.num.int <127 (0x7f)> + [17] #199.1.1.num.int <9 (0x9)> + [18] #198.1.1.num.int <8 (0x8)> + [19] #197.1.1.num.int <7 (0x7)> + [20] #196.1.1.num.int <5 (0x5)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #194.1.1.num.int <0 (0x0)> + [23] #193.1.1.num.bool <0 (0x0)> + [24] #192.1.1.num.bool <1 (0x1)> + [25] #0.0.nil + [26] #191.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x11, size 3, "123"> + [27] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xd, size 3, "123"> + [28] #189.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x57, size 1, "a"> + [1] #216.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x56, size 0, ""> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [6] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [7] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [8] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [11] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [12] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <257 (0x101)> + [14] #203.1.1.num.int <256 (0x100)> + [15] #202.1.1.num.int <255 (0xff)> + [16] #201.1.1.num.int <128 (0x80)> + [17] #200.1.1.num.int <127 (0x7f)> + [18] #199.1.1.num.int <9 (0x9)> + [19] #198.1.1.num.int <8 (0x8)> + [20] #197.1.1.num.int <7 (0x7)> + [21] #196.1.1.num.int <5 (0x5)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #194.1.1.num.int <0 (0x0)> + [24] #193.1.1.num.bool <0 (0x0)> + [25] #192.1.1.num.bool <1 (0x1)> + [26] #0.0.nil + [27] #191.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x11, size 3, "123"> + [28] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xd, size 3, "123"> + [29] #189.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x58, type 7, 89[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x59, size 3, "abc"> + [1] #217.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x57, size 1, "a"> + [2] #216.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x56, size 0, ""> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [7] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [8] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [9] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [12] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [13] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <257 (0x101)> + [15] #203.1.1.num.int <256 (0x100)> + [16] #202.1.1.num.int <255 (0xff)> + [17] #201.1.1.num.int <128 (0x80)> + [18] #200.1.1.num.int <127 (0x7f)> + [19] #199.1.1.num.int <9 (0x9)> + [20] #198.1.1.num.int <8 (0x8)> + [21] #197.1.1.num.int <7 (0x7)> + [22] #196.1.1.num.int <5 (0x5)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #194.1.1.num.int <0 (0x0)> + [25] #193.1.1.num.bool <0 (0x0)> + [26] #192.1.1.num.bool <1 (0x1)> + [27] #0.0.nil + [28] #191.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x11, size 3, "123"> + [29] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xd, size 3, "123"> + [30] #189.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x5c, type 7, 93[11] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [1] #218.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x59, size 3, "abc"> + [2] #217.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x57, size 1, "a"> + [3] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x56, size 0, ""> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [8] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [9] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [10] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [13] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [14] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <257 (0x101)> + [16] #203.1.1.num.int <256 (0x100)> + [17] #202.1.1.num.int <255 (0xff)> + [18] #201.1.1.num.int <128 (0x80)> + [19] #200.1.1.num.int <127 (0x7f)> + [20] #199.1.1.num.int <9 (0x9)> + [21] #198.1.1.num.int <8 (0x8)> + [22] #197.1.1.num.int <7 (0x7)> + [23] #196.1.1.num.int <5 (0x5)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #194.1.1.num.int <0 (0x0)> + [26] #193.1.1.num.bool <0 (0x0)> + [27] #192.1.1.num.bool <1 (0x1)> + [28] #0.0.nil + [29] #191.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x11, size 3, "123"> + [30] #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xd, size 3, "123"> + [31] #189.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x68, type 7, 106[12] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [1] #219.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [2] #218.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x59, size 3, "abc"> + [3] #217.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x57, size 1, "a"> + [4] #216.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x56, size 0, ""> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [9] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [10] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [11] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [14] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [15] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #204.1.1.num.int <257 (0x101)> + [17] #203.1.1.num.int <256 (0x100)> + [18] #202.1.1.num.int <255 (0xff)> + [19] #201.1.1.num.int <128 (0x80)> + [20] #200.1.1.num.int <127 (0x7f)> + [21] #199.1.1.num.int <9 (0x9)> + [22] #198.1.1.num.int <8 (0x8)> + [23] #197.1.1.num.int <7 (0x7)> + [24] #196.1.1.num.int <5 (0x5)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #194.1.1.num.int <0 (0x0)> + [27] #193.1.1.num.bool <0 (0x0)> + [28] #192.1.1.num.bool <1 (0x1)> + [29] #0.0.nil + [30] #191.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x11, size 3, "123"> + [31] #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xd, size 3, "123"> + [32] #189.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x76, type 7, 120[16] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [1] #220.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [2] #219.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [3] #218.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x59, size 3, "abc"> + [4] #217.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x57, size 1, "a"> + [5] #216.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x56, size 0, ""> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [10] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [11] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [12] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [15] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [16] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #204.1.1.num.int <257 (0x101)> + [18] #203.1.1.num.int <256 (0x100)> + [19] #202.1.1.num.int <255 (0xff)> + [20] #201.1.1.num.int <128 (0x80)> + [21] #200.1.1.num.int <127 (0x7f)> + [22] #199.1.1.num.int <9 (0x9)> + [23] #198.1.1.num.int <8 (0x8)> + [24] #197.1.1.num.int <7 (0x7)> + [25] #196.1.1.num.int <5 (0x5)> + [26] #195.1.1.num.int <1 (0x1)> + [27] #194.1.1.num.int <0 (0x0)> + [28] #193.1.1.num.bool <0 (0x0)> + [29] #192.1.1.num.bool <1 (0x1)> + [30] #0.0.nil + [31] #191.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x11, size 3, "123"> + [32] #190.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xd, size 3, "123"> + [33] #189.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x88, type 7, 139[256] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [1] #221.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [2] #220.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [3] #219.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [4] #218.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x59, size 3, "abc"> + [5] #217.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x57, size 1, "a"> + [6] #216.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x56, size 0, ""> + [7] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [11] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [12] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [13] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [16] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [17] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #204.1.1.num.int <257 (0x101)> + [19] #203.1.1.num.int <256 (0x100)> + [20] #202.1.1.num.int <255 (0xff)> + [21] #201.1.1.num.int <128 (0x80)> + [22] #200.1.1.num.int <127 (0x7f)> + [23] #199.1.1.num.int <9 (0x9)> + [24] #198.1.1.num.int <8 (0x8)> + [25] #197.1.1.num.int <7 (0x7)> + [26] #196.1.1.num.int <5 (0x5)> + [27] #195.1.1.num.int <1 (0x1)> + [28] #194.1.1.num.int <0 (0x0)> + [29] #193.1.1.num.bool <0 (0x0)> + [30] #192.1.1.num.bool <1 (0x1)> + [31] #0.0.nil + [32] #191.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x11, size 3, "123"> + [33] #190.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xd, size 3, "123"> + [34] #189.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18b, type 7, 396[3] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x18c, size 3, "abc"> + [1] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [2] #221.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [3] #220.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [4] #219.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [5] #218.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x59, size 3, "abc"> + [6] #217.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x57, size 1, "a"> + [7] #216.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x56, size 0, ""> + [8] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [12] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [13] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [14] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [17] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [18] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #204.1.1.num.int <257 (0x101)> + [20] #203.1.1.num.int <256 (0x100)> + [21] #202.1.1.num.int <255 (0xff)> + [22] #201.1.1.num.int <128 (0x80)> + [23] #200.1.1.num.int <127 (0x7f)> + [24] #199.1.1.num.int <9 (0x9)> + [25] #198.1.1.num.int <8 (0x8)> + [26] #197.1.1.num.int <7 (0x7)> + [27] #196.1.1.num.int <5 (0x5)> + [28] #195.1.1.num.int <1 (0x1)> + [29] #194.1.1.num.int <0 (0x0)> + [30] #193.1.1.num.bool <0 (0x0)> + [31] #192.1.1.num.bool <1 (0x1)> + [32] #0.0.nil + [33] #191.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x11, size 3, "123"> + [34] #190.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xd, size 3, "123"> + [35] #189.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18f, type 7, 400[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x190, size 3, "abc"> + [1] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x18c, size 3, "abc"> + [2] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [3] #221.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [4] #220.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [5] #219.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [6] #218.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x59, size 3, "abc"> + [7] #217.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x57, size 1, "a"> + [8] #216.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x56, size 0, ""> + [9] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [13] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [14] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [15] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [18] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #204.1.1.num.int <257 (0x101)> + [21] #203.1.1.num.int <256 (0x100)> + [22] #202.1.1.num.int <255 (0xff)> + [23] #201.1.1.num.int <128 (0x80)> + [24] #200.1.1.num.int <127 (0x7f)> + [25] #199.1.1.num.int <9 (0x9)> + [26] #198.1.1.num.int <8 (0x8)> + [27] #197.1.1.num.int <7 (0x7)> + [28] #196.1.1.num.int <5 (0x5)> + [29] #195.1.1.num.int <1 (0x1)> + [30] #194.1.1.num.int <0 (0x0)> + [31] #193.1.1.num.bool <0 (0x0)> + [32] #192.1.1.num.bool <1 (0x1)> + [33] #0.0.nil + [34] #191.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x11, size 3, "123"> + [35] #190.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xd, size 3, "123"> + [36] #189.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x193, type 9, 404[3] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.ref.ro <#186.1.14.mem.ro, ofs 0x194, size 3, "foo"> + [1] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x190, size 3, "abc"> + [2] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x18c, size 3, "abc"> + [3] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [4] #221.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [5] #220.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [6] #219.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [7] #218.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x59, size 3, "abc"> + [8] #217.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x57, size 1, "a"> + [9] #216.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x56, size 0, ""> + [10] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [14] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [15] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [16] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [19] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [20] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #204.1.1.num.int <257 (0x101)> + [22] #203.1.1.num.int <256 (0x100)> + [23] #202.1.1.num.int <255 (0xff)> + [24] #201.1.1.num.int <128 (0x80)> + [25] #200.1.1.num.int <127 (0x7f)> + [26] #199.1.1.num.int <9 (0x9)> + [27] #198.1.1.num.int <8 (0x8)> + [28] #197.1.1.num.int <7 (0x7)> + [29] #196.1.1.num.int <5 (0x5)> + [30] #195.1.1.num.int <1 (0x1)> + [31] #194.1.1.num.int <0 (0x0)> + [32] #193.1.1.num.bool <0 (0x0)> + [33] #192.1.1.num.bool <1 (0x1)> + [34] #0.0.nil + [35] #191.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x11, size 3, "123"> + [36] #190.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0xd, size 3, "123"> + [37] #189.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x197, type 6, 408[5] +GC: ++#186.1.14.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.15.mem.ro, ofs 0x198, size 5> + [1] #225.1.1.mem.ref.ro <#186.1.15.mem.ro, ofs 0x194, size 3, "foo"> + [2] #224.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x190, size 3, "abc"> + [3] #223.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x18c, size 3, "abc"> + [4] #222.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [5] #221.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [6] #220.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [7] #219.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [8] #218.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x59, size 3, "abc"> + [9] #217.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x57, size 1, "a"> + [10] #216.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x56, size 0, ""> + [11] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [15] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [16] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [17] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [21] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #204.1.1.num.int <257 (0x101)> + [23] #203.1.1.num.int <256 (0x100)> + [24] #202.1.1.num.int <255 (0xff)> + [25] #201.1.1.num.int <128 (0x80)> + [26] #200.1.1.num.int <127 (0x7f)> + [27] #199.1.1.num.int <9 (0x9)> + [28] #198.1.1.num.int <8 (0x8)> + [29] #197.1.1.num.int <7 (0x7)> + [30] #196.1.1.num.int <5 (0x5)> + [31] #195.1.1.num.int <1 (0x1)> + [32] #194.1.1.num.int <0 (0x0)> + [33] #193.1.1.num.bool <0 (0x0)> + [34] #192.1.1.num.bool <1 (0x1)> + [35] #0.0.nil + [36] #191.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x11, size 3, "123"> + [37] #190.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0xd, size 3, "123"> + [38] #189.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x19d, type 6, 414[10] +GC: ++#186.1.15.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.code.ro <#186.1.16.mem.ro, ofs 0x19e, size 10> + [1] #226.1.1.mem.code.ro <#186.1.16.mem.ro, ofs 0x198, size 5> + [2] #225.1.1.mem.ref.ro <#186.1.16.mem.ro, ofs 0x194, size 3, "foo"> + [3] #224.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x190, size 3, "abc"> + [4] #223.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x18c, size 3, "abc"> + [5] #222.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [6] #221.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [7] #220.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [8] #219.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [9] #218.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x59, size 3, "abc"> + [10] #217.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x57, size 1, "a"> + [11] #216.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x56, size 0, ""> + [12] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [16] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [17] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [21] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [22] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #204.1.1.num.int <257 (0x101)> + [24] #203.1.1.num.int <256 (0x100)> + [25] #202.1.1.num.int <255 (0xff)> + [26] #201.1.1.num.int <128 (0x80)> + [27] #200.1.1.num.int <127 (0x7f)> + [28] #199.1.1.num.int <9 (0x9)> + [29] #198.1.1.num.int <8 (0x8)> + [30] #197.1.1.num.int <7 (0x7)> + [31] #196.1.1.num.int <5 (0x5)> + [32] #195.1.1.num.int <1 (0x1)> + [33] #194.1.1.num.int <0 (0x0)> + [34] #193.1.1.num.bool <0 (0x0)> + [35] #192.1.1.num.bool <1 (0x1)> + [36] #0.0.nil + [37] #191.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x11, size 3, "123"> + [38] #190.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0xd, size 3, "123"> + [39] #189.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1a8, type 6, 425[11] +GC: ++#186.1.16.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + [1] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [2] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [3] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [4] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [5] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [6] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [8] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [9] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [10] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [11] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [12] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [13] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #204.1.1.num.int <257 (0x101)> + [25] #203.1.1.num.int <256 (0x100)> + [26] #202.1.1.num.int <255 (0xff)> + [27] #201.1.1.num.int <128 (0x80)> + [28] #200.1.1.num.int <127 (0x7f)> + [29] #199.1.1.num.int <9 (0x9)> + [30] #198.1.1.num.int <8 (0x8)> + [31] #197.1.1.num.int <7 (0x7)> + [32] #196.1.1.num.int <5 (0x5)> + [33] #195.1.1.num.int <1 (0x1)> + [34] #194.1.1.num.int <0 (0x0)> + [35] #193.1.1.num.bool <0 (0x0)> + [36] #192.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [39] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [40] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1b4, type 8, 437[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + [1] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [2] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [3] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [4] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [5] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [6] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [8] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [9] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [10] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [11] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [12] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [13] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #204.1.1.num.int <257 (0x101)> + [25] #203.1.1.num.int <256 (0x100)> + [26] #202.1.1.num.int <255 (0xff)> + [27] #201.1.1.num.int <128 (0x80)> + [28] #200.1.1.num.int <127 (0x7f)> + [29] #199.1.1.num.int <9 (0x9)> + [30] #198.1.1.num.int <8 (0x8)> + [31] #197.1.1.num.int <7 (0x7)> + [32] #196.1.1.num.int <5 (0x5)> + [33] #195.1.1.num.int <1 (0x1)> + [34] #194.1.1.num.int <0 (0x0)> + [35] #193.1.1.num.bool <0 (0x0)> + [36] #192.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [39] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [40] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> +error 2 (invalid instruction), ip = #186:0x1b4 diff --git a/tests/0061_def/basic.log.ref b/tests/0061_def/basic.log.ref new file mode 100644 index 0000000..34c83d1 --- /dev/null +++ b/tests/0061_def/basic.log.ref @@ -0,0 +1,177 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <20 (0x14)> + [1] #xxxx.1.3.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0061_def/code.log.ref b/tests/0061_def/code.log.ref new file mode 100644 index 0000000..179b7ca --- /dev/null +++ b/tests/0061_def/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code b6 { + 6 6 0x00018 ref 39 62 61 72 /bar + 7 0x0001c int 81 14 20 + 8 0x0001e word 38 64 65 66 def + 7 9 0x00022 prim 13 } + 10 0x00023 word 38 64 65 66 def + 9 11 0x00027 ref 49 66 6f 6f 32 /foo2 + 12 0x0002c code c6 18 { + 10 13 0x0002e ref 39 62 61 72 /bar + 14 0x00032 int 81 1e 30 + 15 0x00034 word 38 64 65 66 def + 11 16 0x00038 word 38 62 61 72 bar + 12 17 0x0003c word 48 66 6f 6f 31 foo1 + 13 18 0x00041 word 38 62 61 72 bar + 14 19 0x00045 prim 13 } + 20 0x00046 word 38 64 65 66 def + 16 21 0x0004a word 38 62 61 72 bar + 22 0x0004e word 48 66 6f 6f 32 foo2 + 23 0x00053 word 38 62 61 72 bar diff --git a/tests/0061_def/code1.log.ref b/tests/0061_def/code1.log.ref new file mode 100644 index 0000000..16eae26 --- /dev/null +++ b/tests/0061_def/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code 76 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c xref 84 0e def + 7 9 0x0001e prim 13 } + 10 0x0001f xref 84 11 def + 9 11 0x00021 ref 49 66 6f 6f 32 /foo2 + 12 0x00026 code c6 12 { + 10 13 0x00028 xref 84 20 /bar + 14 0x0002a int 81 1e 30 + 15 0x0002c xref 84 1e def + 11 16 0x0002e word 38 62 61 72 bar + 12 17 0x00032 word 48 66 6f 6f 31 foo1 + 13 18 0x00037 xref 84 09 bar + 14 19 0x00039 prim 13 } + 20 0x0003a xref 84 2c def + 16 21 0x0003c xref 84 0e bar + 22 0x0003e word 48 66 6f 6f 32 foo2 + 23 0x00043 xref 84 15 bar diff --git a/tests/0061_def/code2.log.ref b/tests/0061_def/code2.log.ref new file mode 100644 index 0000000..764d196 --- /dev/null +++ b/tests/0061_def/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 66 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 63 def + 7 9 0x0001a prim 13 } + 10 0x0001b prim 63 def + 9 11 0x0001c ref 49 66 6f 6f 32 /foo2 + 12 0x00021 code c6 11 { + 10 13 0x00023 xref 84 1b /bar + 14 0x00025 int 81 1e 30 + 15 0x00027 prim 63 def + 11 16 0x00028 word 38 62 61 72 bar + 12 17 0x0002c word 48 66 6f 6f 31 foo1 + 13 18 0x00031 xref 84 09 bar + 14 19 0x00033 prim 13 } + 20 0x00034 prim 63 def + 16 21 0x00035 xref 84 0d bar + 22 0x00037 word 48 66 6f 6f 32 foo2 + 23 0x0003c xref 84 14 bar diff --git a/tests/0061_def/main.gs b/tests/0061_def/main.gs new file mode 100644 index 0000000..730b03d --- /dev/null +++ b/tests/0061_def/main.gs @@ -0,0 +1,16 @@ +# variable definition + +/bar 10 def + +/foo1 { + /bar 20 def +} def + +/foo2 { + /bar 30 def + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0061_def/mem.log.ref b/tests/0061_def/mem.log.ref new file mode 100644 index 0000000..68e5982 --- /dev/null +++ b/tests/0061_def/mem.log.ref @@ -0,0 +1,778 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 88] + 8: 187.01, 0x001d6acc[ 72] + 9: 188.01, 0x001d6b1c[ 56] + 10: 0.00, 0x001d6b5c[ 56] + 11: 198.01, 0x001d6b9c[ 72] + 12: 0.00, 0x001d6bec[14849044] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> => #201.1.3.num.int <20 (0x14)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x18, size 11> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 b6 39 62 61 72 81 14 38 64 efIfoo1.9bar..8d + 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 18 39 62 ef.8defIfoo2..9b + 61 72 81 1e 38 64 65 66 38 62 61 72 48 66 6f 6f ar..8def8barHfoo + 31 38 62 61 72 13 38 64 65 66 38 62 61 72 48 66 18bar.8def8barHf + 6f 6f 32 38 62 61 72 oo28bar + #187.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #197.1.1.num.int <30 (0x1e)> + [ 2] #201.1.3.num.int <20 (0x14)> + [ 3] #201.1.3.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x57 (0x57) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x18, size 11> + 39 62 61 72 81 14 38 64 65 66 13 9bar..8def. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + 39 62 61 72 81 1e 38 64 65 66 38 62 61 72 48 66 9bar..8def8barHf + 6f 6f 31 38 62 61 72 13 oo18bar. + #197.1.1.num.int <30 (0x1e)> + #198.1.1.array + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #201.1.3.num.int <20 (0x14)> diff --git a/tests/0061_def/screen.log.ref b/tests/0061_def/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0061_def/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0061_def/trace.log.ref b/tests/0061_def/trace.log.ref new file mode 100644 index 0000000..cef4daa --- /dev/null +++ b/tests/0061_def/trace.log.ref @@ -0,0 +1,201 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 24[11] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 11> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x23, type 8, 36[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x27, type 9, 40[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x28, size 4, "foo2"> +IP: #186:0x2c, type 6, 46[24] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> +IP: #186:0x46, type 8, 71[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4a, type 8, 75[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x4e, type 8, 79[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x2f, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x2f, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[3] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.7.mem.ro +GC: --#190.1.2.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> +IP: #194:0xa, type 8, 11[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0xe, type 8, 15[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x19, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x19, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[3] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.7.mem.ro +GC: --#197.1.2.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0xa, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0x13, type 8, 20[3] +GC: ++#201.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.1.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #194:0x17, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.1.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #186:0x53, type 8, 84[3] +GC: ++#201.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.3.num.int <20 (0x14)> + [1] #201.1.3.num.int <20 (0x14)> + [2] #197.1.1.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> diff --git a/tests/0062_ldef/basic.log.ref b/tests/0062_ldef/basic.log.ref new file mode 100644 index 0000000..8cb1911 --- /dev/null +++ b/tests/0062_ldef/basic.log.ref @@ -0,0 +1,179 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <30 (0x1e)> + [1] #xxxx.1.3.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.3.num.int <10 (0xa)> diff --git a/tests/0062_ldef/code.log.ref b/tests/0062_ldef/code.log.ref new file mode 100644 index 0000000..c6d0a45 --- /dev/null +++ b/tests/0062_ldef/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code c6 0c { + 6 6 0x00019 ref 39 62 61 72 /bar + 7 0x0001d int 81 14 20 + 8 0x0001f word 48 6c 64 65 66 ldef + 7 9 0x00024 prim 13 } + 10 0x00025 word 38 64 65 66 def + 9 11 0x00029 ref 49 66 6f 6f 32 /foo2 + 12 0x0002e code c6 19 { + 10 13 0x00030 ref 39 62 61 72 /bar + 14 0x00034 int 81 1e 30 + 15 0x00036 word 48 6c 64 65 66 ldef + 11 16 0x0003b word 38 62 61 72 bar + 12 17 0x0003f word 48 66 6f 6f 31 foo1 + 13 18 0x00044 word 38 62 61 72 bar + 14 19 0x00048 prim 13 } + 20 0x00049 word 38 64 65 66 def + 16 21 0x0004d word 38 62 61 72 bar + 22 0x00051 word 48 66 6f 6f 32 foo2 + 23 0x00056 word 38 62 61 72 bar diff --git a/tests/0062_ldef/code1.log.ref b/tests/0062_ldef/code1.log.ref new file mode 100644 index 0000000..5f303b9 --- /dev/null +++ b/tests/0062_ldef/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code a6 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c word 48 6c 64 65 66 ldef + 7 9 0x00021 prim 13 } + 10 0x00022 xref 84 14 def + 9 11 0x00024 ref 49 66 6f 6f 32 /foo2 + 12 0x00029 code c6 12 { + 10 13 0x0002b xref 84 23 /bar + 14 0x0002d int 81 1e 30 + 15 0x0002f xref 84 13 ldef + 11 16 0x00031 word 38 62 61 72 bar + 12 17 0x00035 word 48 66 6f 6f 31 foo1 + 13 18 0x0003a xref 84 09 bar + 14 19 0x0003c prim 13 } + 20 0x0003d xref 84 2f def + 16 21 0x0003f xref 84 0e bar + 22 0x00041 word 48 66 6f 6f 32 foo2 + 23 0x00046 xref 84 15 bar diff --git a/tests/0062_ldef/code2.log.ref b/tests/0062_ldef/code2.log.ref new file mode 100644 index 0000000..88e5733 --- /dev/null +++ b/tests/0062_ldef/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 66 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 73 ldef + 7 9 0x0001a prim 13 } + 10 0x0001b prim 63 def + 9 11 0x0001c ref 49 66 6f 6f 32 /foo2 + 12 0x00021 code c6 11 { + 10 13 0x00023 xref 84 1b /bar + 14 0x00025 int 81 1e 30 + 15 0x00027 prim 73 ldef + 11 16 0x00028 word 38 62 61 72 bar + 12 17 0x0002c word 48 66 6f 6f 31 foo1 + 13 18 0x00031 xref 84 09 bar + 14 19 0x00033 prim 13 } + 20 0x00034 prim 63 def + 16 21 0x00035 xref 84 0d bar + 22 0x00037 word 48 66 6f 6f 32 foo2 + 23 0x0003c xref 84 14 bar diff --git a/tests/0062_ldef/main.gs b/tests/0062_ldef/main.gs new file mode 100644 index 0000000..74d9b9a --- /dev/null +++ b/tests/0062_ldef/main.gs @@ -0,0 +1,16 @@ +# local variable definition + +/bar 10 def + +/foo1 { + /bar 20 ldef +} def + +/foo2 { + /bar 30 ldef + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0062_ldef/mem.log.ref b/tests/0062_ldef/mem.log.ref new file mode 100644 index 0000000..43345de --- /dev/null +++ b/tests/0062_ldef/mem.log.ref @@ -0,0 +1,777 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 416] + 11: 203.01, 0x001d6d08[ 72] + 12: 0.00, 0x001d6d58[14848680] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "bar"> => #190.1.3.num.int <10 (0xa)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 c6 0c 39 62 61 72 81 14 48 efIfoo1..9bar..H + 6c 64 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 19 ldef.8defIfoo2.. + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 38 64 65 66 38 62 61 foo18bar.8def8ba + 72 48 66 6f 6f 32 38 62 61 72 rHfoo28bar + #187.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #197.1.2.num.int <30 (0x1e)> + [ 2] #197.1.2.num.int <30 (0x1e)> + [ 3] #190.1.3.num.int <10 (0xa)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "bar"> + 62 61 72 bar + #190.1.3.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + 39 62 61 72 81 14 48 6c 64 65 66 13 9bar..Hldef. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 foo18bar. + #197.1.2.num.int <30 (0x1e)> + #203.1.1.array diff --git a/tests/0062_ldef/screen.log.ref b/tests/0062_ldef/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0062_ldef/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0062_ldef/trace.log.ref b/tests/0062_ldef/trace.log.ref new file mode 100644 index 0000000..7611467 --- /dev/null +++ b/tests/0062_ldef/trace.log.ref @@ -0,0 +1,203 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 25[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x19, size 12> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x25, type 8, 38[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29, type 9, 42[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x2e, type 6, 48[25] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x49, type 8, 74[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4d, type 8, 78[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[4] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0xb, type 8, 12[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0xf, type 8, 16[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[4] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0xb, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#202.1.1.hash +GC: --#200.1.1.mem.ref.ro +GC: --#201.1.1.num.int +GC: --#186.1.8.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x14, type 8, 21[3] +GC: ++#197.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.3.num.int <30 (0x1e)> + [1] #197.1.3.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x18, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.3.num.int +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x56, type 8, 87[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.3.num.int <10 (0xa)> diff --git a/tests/0063_gdef/basic.log.ref b/tests/0063_gdef/basic.log.ref new file mode 100644 index 0000000..4e3d2f1 --- /dev/null +++ b/tests/0063_gdef/basic.log.ref @@ -0,0 +1,178 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.8.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <30 (0x1e)> + [1] #xxxx.1.3.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0063_gdef/code.log.ref b/tests/0063_gdef/code.log.ref new file mode 100644 index 0000000..a6a3d9c --- /dev/null +++ b/tests/0063_gdef/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code c6 0c { + 6 6 0x00019 ref 39 62 61 72 /bar + 7 0x0001d int 81 14 20 + 8 0x0001f word 48 67 64 65 66 gdef + 7 9 0x00024 prim 13 } + 10 0x00025 word 38 64 65 66 def + 9 11 0x00029 ref 49 66 6f 6f 32 /foo2 + 12 0x0002e code c6 19 { + 10 13 0x00030 ref 39 62 61 72 /bar + 14 0x00034 int 81 1e 30 + 15 0x00036 word 48 6c 64 65 66 ldef + 11 16 0x0003b word 38 62 61 72 bar + 12 17 0x0003f word 48 66 6f 6f 31 foo1 + 13 18 0x00044 word 38 62 61 72 bar + 14 19 0x00048 prim 13 } + 20 0x00049 word 38 64 65 66 def + 16 21 0x0004d word 38 62 61 72 bar + 22 0x00051 word 48 66 6f 6f 32 foo2 + 23 0x00056 word 38 62 61 72 bar diff --git a/tests/0063_gdef/code1.log.ref b/tests/0063_gdef/code1.log.ref new file mode 100644 index 0000000..83c142e --- /dev/null +++ b/tests/0063_gdef/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code a6 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c word 48 67 64 65 66 gdef + 7 9 0x00021 prim 13 } + 10 0x00022 xref 84 14 def + 9 11 0x00024 ref 49 66 6f 6f 32 /foo2 + 12 0x00029 code c6 15 { + 10 13 0x0002b xref 84 23 /bar + 14 0x0002d int 81 1e 30 + 15 0x0002f word 48 6c 64 65 66 ldef + 11 16 0x00034 word 38 62 61 72 bar + 12 17 0x00038 word 48 66 6f 6f 31 foo1 + 13 18 0x0003d xref 84 09 bar + 14 19 0x0003f prim 13 } + 20 0x00040 xref 84 32 def + 16 21 0x00042 xref 84 0e bar + 22 0x00044 word 48 66 6f 6f 32 foo2 + 23 0x00049 xref 84 15 bar diff --git a/tests/0063_gdef/code2.log.ref b/tests/0063_gdef/code2.log.ref new file mode 100644 index 0000000..1a46909 --- /dev/null +++ b/tests/0063_gdef/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 76 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 83 08 gdef + 7 9 0x0001b prim 13 } + 10 0x0001c prim 63 def + 9 11 0x0001d ref 49 66 6f 6f 32 /foo2 + 12 0x00022 code c6 11 { + 10 13 0x00024 xref 84 1c /bar + 14 0x00026 int 81 1e 30 + 15 0x00028 prim 73 ldef + 11 16 0x00029 word 38 62 61 72 bar + 12 17 0x0002d word 48 66 6f 6f 31 foo1 + 13 18 0x00032 xref 84 09 bar + 14 19 0x00034 prim 13 } + 20 0x00035 prim 63 def + 16 21 0x00036 xref 84 0d bar + 22 0x00038 word 48 66 6f 6f 32 foo2 + 23 0x0003d xref 84 14 bar diff --git a/tests/0063_gdef/main.gs b/tests/0063_gdef/main.gs new file mode 100644 index 0000000..69a8c0a --- /dev/null +++ b/tests/0063_gdef/main.gs @@ -0,0 +1,16 @@ +# global variable definition + +/bar 10 def + +/foo1 { + /bar 20 gdef +} def + +/foo2 { + /bar 30 ldef + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0063_gdef/mem.log.ref b/tests/0063_gdef/mem.log.ref new file mode 100644 index 0000000..8fcd5e8 --- /dev/null +++ b/tests/0063_gdef/mem.log.ref @@ -0,0 +1,778 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 268] + 11: 202.01, 0x001d6c74[ 72] + 12: 0.00, 0x001d6cc4[14848828] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1a, size 3, "bar"> => #201.1.2.num.int <20 (0x14)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 c6 0c 39 62 61 72 81 14 48 efIfoo1..9bar..H + 67 64 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 19 gdef.8defIfoo2.. + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 38 64 65 66 38 62 61 foo18bar.8def8ba + 72 48 66 6f 6f 32 38 62 61 72 rHfoo28bar + #187.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #197.1.2.num.int <30 (0x1e)> + [ 2] #197.1.2.num.int <30 (0x1e)> + [ 3] #201.1.2.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + 39 62 61 72 81 14 48 67 64 65 66 13 9bar..Hgdef. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 foo18bar. + #197.1.2.num.int <30 (0x1e)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1a, size 3, "bar"> + 62 61 72 bar + #201.1.2.num.int <20 (0x14)> + #202.1.1.array diff --git a/tests/0063_gdef/screen.log.ref b/tests/0063_gdef/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0063_gdef/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0063_gdef/trace.log.ref b/tests/0063_gdef/trace.log.ref new file mode 100644 index 0000000..53b451e --- /dev/null +++ b/tests/0063_gdef/trace.log.ref @@ -0,0 +1,202 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 25[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x19, size 12> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x25, type 8, 38[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29, type 9, 42[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x2e, type 6, 48[25] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x49, type 8, 74[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4d, type 8, 78[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[4] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0xb, type 8, 12[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0xf, type 8, 16[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[4] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.8.mem.ro +GC: --#190.1.2.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0xb, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0x14, type 8, 21[3] +GC: ++#197.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.3.num.int <30 (0x1e)> + [1] #197.1.3.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #194:0x18, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.3.num.int +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #186:0x56, type 8, 87[3] +GC: ++#201.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> diff --git a/tests/0064_method_get/basic.log.ref b/tests/0064_method_get/basic.log.ref new file mode 100644 index 0000000..9ac725a --- /dev/null +++ b/tests/0064_method_get/basic.log.ref @@ -0,0 +1,119 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "3x"> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "x"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "3x"> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "x"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> diff --git a/tests/0064_method_get/code.log.ref b/tests/0064_method_get/code.log.ref new file mode 100644 index 0000000..3123c30 --- /dev/null +++ b/tests/0064_method_get/code.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 19 78 /x + 4 0x00010 int 81 0a 10 + 3 5 0x00012 ref 29 33 78 /3x + 6 0x00015 code 86 { + 7 0x00016 word 18 78 x + 8 0x00018 int 31 3 + 9 0x00019 word 38 6d 75 6c mul + 10 0x0001d prim 13 } + 4 11 0x0001e word 18 29 ) + 12 0x00020 word 38 64 65 66 def + 6 13 0x00024 word 38 66 6f 6f foo + 14 0x00028 get 1a 78 .x + 7 15 0x0002a word 38 66 6f 6f foo + 16 0x0002e get 2a 33 78 .3x diff --git a/tests/0064_method_get/code1.log.ref b/tests/0064_method_get/code1.log.ref new file mode 100644 index 0000000..2246acb --- /dev/null +++ b/tests/0064_method_get/code1.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 19 78 /x + 4 0x00010 int 81 0a 10 + 3 5 0x00012 ref 29 33 78 /3x + 6 0x00015 code 86 { + 7 0x00016 word 18 78 x + 8 0x00018 int 31 3 + 9 0x00019 word 38 6d 75 6c mul + 10 0x0001d prim 13 } + 4 11 0x0001e word 18 29 ) + 12 0x00020 word 38 64 65 66 def + 6 13 0x00024 word 38 66 6f 6f foo + 14 0x00028 get 1a 78 .x + 7 15 0x0002a xref 64 foo + 16 0x0002b get 2a 33 78 .3x diff --git a/tests/0064_method_get/code2.log.ref b/tests/0064_method_get/code2.log.ref new file mode 100644 index 0000000..fccf64a --- /dev/null +++ b/tests/0064_method_get/code2.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 2 3 0x0000d ref 19 78 /x + 4 0x0000f int 81 0a 10 + 3 5 0x00011 ref 29 33 78 /3x + 6 0x00014 code 66 { + 7 0x00015 word 18 78 x + 8 0x00017 int 31 3 + 9 0x00018 prim 83 20 mul + 10 0x0001a prim 13 } + 4 11 0x0001b prim 53 ) + 12 0x0001c prim 63 def + 6 13 0x0001d word 38 66 6f 6f foo + 14 0x00021 get 1a 78 .x + 7 15 0x00023 xref 64 foo + 16 0x00024 get 2a 33 78 .3x diff --git a/tests/0064_method_get/main.gs b/tests/0064_method_get/main.gs new file mode 100644 index 0000000..015a770 --- /dev/null +++ b/tests/0064_method_get/main.gs @@ -0,0 +1,7 @@ +/foo ( + /x 10 + /3x { x 3 mul } +) def + +foo .x +foo .3x diff --git a/tests/0064_method_get/mem.log.ref b/tests/0064_method_get/mem.log.ref new file mode 100644 index 0000000..93551a7 --- /dev/null +++ b/tests/0064_method_get/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 194.01, 0x001d6b38[ 28] + 11: 0.00, 0x001d6b5c[ 204] + 12: 199.01, 0x001d6c30[ 72] + 13: 0.00, 0x001d6c80[14848896] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #194.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 19 78 uQ..Bz.`9foo.(.x + 81 0a 29 33 78 86 18 78 31 38 6d 75 6c 13 18 29 ..)3x..x18mul..) + 38 64 65 66 38 66 6f 6f 1a 78 38 66 6f 6f 2a 33 8def8foo.x8foo*3 + 78 x + #187.1.1.array + [ 0] #191.1.2.num.int <10 (0xa)> + [ 1] #198.1.1.num.int <30 (0x1e)> + #188.1.1.ctx.func + type 17, ip 0x31 (0x31) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> + 78 x + #191.1.2.num.int <10 (0xa)> + #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> + 33 78 3x + #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + 18 78 31 38 6d 75 6c 13 .x18mul. + #194.1.1.hash + #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> => #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> => #191.1.2.num.int <10 (0xa)> + #198.1.1.num.int <30 (0x1e)> + #199.1.1.array diff --git a/tests/0064_method_get/screen.log.ref b/tests/0064_method_get/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0064_method_get/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0064_method_get/trace.log.ref b/tests/0064_method_get/trace.log.ref new file mode 100644 index 0000000..185ce32 --- /dev/null +++ b/tests/0064_method_get/trace.log.ref @@ -0,0 +1,136 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 9, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 9, 19[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 2, "3x"> + [1] #191.1.1.num.int <10 (0xa)> + [2] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xf, size 1, "x"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x15, type 6, 22[8] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + [1] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> + [2] #191.1.1.num.int <10 (0xa)> + [3] #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1e, type 8, 31[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x20, type 8, 33[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x24, type 8, 37[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash +IP: #186:0x28, type 10, 41[1] +GC: ++#191.1.1.num.int +GC: --#194.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <10 (0xa)> +IP: #186:0x2a, type 8, 43[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #191.1.2.num.int <10 (0xa)> +IP: #186:0x2e, type 10, 47[2] +GC: ++#193.1.1.mem.code.ro +GC: ++#194.1.2.hash +GC: --#194.1.3.hash +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <10 (0xa)> +IP: #193:0x0, type 8, 1[1] +GC: ++#191.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.3.num.int <10 (0xa)> + [1] #191.1.3.num.int <10 (0xa)> +IP: #193:0x2, type 1, 3 (0x3) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #191.1.3.num.int <10 (0xa)> + [2] #191.1.3.num.int <10 (0xa)> +IP: #193:0x3, type 8, 4[3] +GC: --#197.1.1.num.int +GC: --#191.1.3.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #191.1.2.num.int <10 (0xa)> +IP: #193:0x7, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#193.1.2.mem.code.ro +GC: --#196.1.1.hash +GC: --#194.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #191.1.2.num.int <10 (0xa)> diff --git a/tests/0065_method_set/basic.log.ref b/tests/0065_method_set/basic.log.ref new file mode 100644 index 0000000..6645db5 --- /dev/null +++ b/tests/0065_method_set/basic.log.ref @@ -0,0 +1,120 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "3x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "3x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.4.mem.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <100 (0x64)> + [1] #xxxx.1.3.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.int <100 (0x64)> + [2] #xxxx.1.3.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0065_method_set/code.log.ref b/tests/0065_method_set/code.log.ref new file mode 100644 index 0000000..d395683 --- /dev/null +++ b/tests/0065_method_set/code.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 29 33 78 /3x + 4 0x00011 code 86 { + 5 0x00012 word 18 78 x + 6 0x00014 int 31 3 + 7 0x00015 word 38 6d 75 6c mul + 8 0x00019 prim 13 } + 3 9 0x0001a word 18 29 ) + 10 0x0001c word 38 64 65 66 def + 5 11 0x00020 word 38 66 6f 6f foo + 12 0x00024 int 81 64 100 + 13 0x00026 set 1b 78 =x + 6 14 0x00028 word 38 66 6f 6f foo + 15 0x0002c get 1a 78 .x + 7 16 0x0002e word 38 66 6f 6f foo + 17 0x00032 get 2a 33 78 .3x diff --git a/tests/0065_method_set/code1.log.ref b/tests/0065_method_set/code1.log.ref new file mode 100644 index 0000000..566a43c --- /dev/null +++ b/tests/0065_method_set/code1.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 29 33 78 /3x + 4 0x00011 code 86 { + 5 0x00012 word 18 78 x + 6 0x00014 int 31 3 + 7 0x00015 word 38 6d 75 6c mul + 8 0x00019 prim 13 } + 3 9 0x0001a word 18 29 ) + 10 0x0001c word 38 64 65 66 def + 5 11 0x00020 word 38 66 6f 6f foo + 12 0x00024 int 81 64 100 + 13 0x00026 set 1b 78 =x + 6 14 0x00028 xref 84 08 foo + 15 0x0002a get 1a 78 .x + 7 16 0x0002c xref 84 0c foo + 17 0x0002e get 2a 33 78 .3x diff --git a/tests/0065_method_set/code2.log.ref b/tests/0065_method_set/code2.log.ref new file mode 100644 index 0000000..b4d5946 --- /dev/null +++ b/tests/0065_method_set/code2.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 2 3 0x0000d ref 29 33 78 /3x + 4 0x00010 code 66 { + 5 0x00011 word 18 78 x + 6 0x00013 int 31 3 + 7 0x00014 prim 83 20 mul + 8 0x00016 prim 13 } + 3 9 0x00017 prim 53 ) + 10 0x00018 prim 63 def + 5 11 0x00019 word 38 66 6f 6f foo + 12 0x0001d int 81 64 100 + 13 0x0001f set 1b 78 =x + 6 14 0x00021 xref 84 08 foo + 15 0x00023 get 1a 78 .x + 7 16 0x00025 xref 84 0c foo + 17 0x00027 get 2a 33 78 .3x diff --git a/tests/0065_method_set/main.gs b/tests/0065_method_set/main.gs new file mode 100644 index 0000000..905328e --- /dev/null +++ b/tests/0065_method_set/main.gs @@ -0,0 +1,7 @@ +/foo ( + /3x { x 3 mul } +) def + +foo 100 =x +foo .x +foo .3x diff --git a/tests/0065_method_set/mem.log.ref b/tests/0065_method_set/mem.log.ref new file mode 100644 index 0000000..36880f4 --- /dev/null +++ b/tests/0065_method_set/mem.log.ref @@ -0,0 +1,773 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 0.00, 0x001d6b3c[ 20] + 11: 192.01, 0x001d6b58[ 148] + 12: 0.00, 0x001d6bf4[ 204] + 13: 199.01, 0x001d6cc8[ 72] + 14: 0.00, 0x001d6d18[14848744] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 29 33 uQ..Bz.`9foo.()3 + 78 86 18 78 31 38 6d 75 6c 13 18 29 38 64 65 66 x..x18mul..)8def + 38 66 6f 6f 81 64 1b 78 38 66 6f 6f 1a 78 38 66 8foo.d.x8foo.x8f + 6f 6f 2a 33 78 oo*3x + #187.1.1.array + [ 0] #193.1.2.num.int <100 (0x64)> + [ 1] #198.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x35 (0x35) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "3x"> + 33 78 3x + #191.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x12, size 8> + 18 78 31 38 6d 75 6c 13 .x18mul. + #192.1.1.hash + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "3x"> => #191.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x12, size 8> + #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x27, size 1, "x"> => #193.1.2.num.int <100 (0x64)> + #193.1.2.num.int <100 (0x64)> + #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x27, size 1, "x"> + 78 x + #198.1.1.num.int <300 (0x12c)> + #199.1.1.array diff --git a/tests/0065_method_set/screen.log.ref b/tests/0065_method_set/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0065_method_set/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0065_method_set/trace.log.ref b/tests/0065_method_set/trace.log.ref new file mode 100644 index 0000000..6eb16fa --- /dev/null +++ b/tests/0065_method_set/trace.log.ref @@ -0,0 +1,138 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 9, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "3x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 6, 18[8] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x12, size 8> + [1] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "3x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1c, type 8, 29[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20, type 8, 33[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x24, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <100 (0x64)> + [1] #192.1.2.hash +IP: #186:0x26, type 11, 39[1] +GC: ++#186.1.4.mem.ro +GC: ++#194.1.1.mem.ref.ro +GC: ++#193.1.1.num.int +GC: --#193.1.2.num.int +GC: --#192.1.2.hash +GC: --#194.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 10, 45[1] +GC: ++#193.1.1.num.int +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <100 (0x64)> +IP: #186:0x2e, type 8, 47[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash + [1] #193.1.2.num.int <100 (0x64)> +IP: #186:0x32, type 10, 51[2] +GC: ++#191.1.1.mem.code.ro +GC: ++#192.1.2.hash +GC: --#192.1.3.hash +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <100 (0x64)> +IP: #191:0x0, type 8, 1[1] +GC: ++#193.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.num.int <100 (0x64)> + [1] #193.1.3.num.int <100 (0x64)> +IP: #191:0x2, type 1, 3 (0x3) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #193.1.3.num.int <100 (0x64)> + [2] #193.1.3.num.int <100 (0x64)> +IP: #191:0x3, type 8, 4[3] +GC: --#197.1.1.num.int +GC: --#193.1.3.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <300 (0x12c)> + [1] #193.1.2.num.int <100 (0x64)> +IP: #191:0x7, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#191.1.2.mem.code.ro +GC: --#196.1.1.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <300 (0x12c)> + [1] #193.1.2.num.int <100 (0x64)> diff --git a/tests/0066_inheritance/basic.log.ref b/tests/0066_inheritance/basic.log.ref new file mode 100644 index 0000000..7b4e711 --- /dev/null +++ b/tests/0066_inheritance/basic.log.ref @@ -0,0 +1,605 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate + [1] #xxxx.1.2.gstate +GC: --#xxxx.1.2.gstate +GC: ++#xxxx.1.1.font +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.font + [1] #xxxx.1.2.gstate +GC: ++#xxxx.1.2.font +GC: --#xxxx.1.3.font +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "widget"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "widget"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "draw1"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "widget"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "draw1"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "win"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "win"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "y"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "y"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "win"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "text"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "y"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "text"> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "draw2"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "text"> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "y"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "win"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "draw2"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.11.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <60 (0x3c)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <80 (0x50)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <80 (0x50)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0066_inheritance/code.log.ref b/tests/0066_inheritance/code.log.ref new file mode 100644 index 0000000..f1715bf --- /dev/null +++ b/tests/0066_inheritance/code.log.ref @@ -0,0 +1,64 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 3 0x00024 word 78 67 65 74 66 6f 6e 74 getfont + 4 0x0002c word 78 73 65 74 66 6f 6e 74 setfont + 3 5 0x00034 ref 69 77 69 64 67 65 74 /widget + 6 0x0003b word 18 28 ( + 4 7 0x0003d ref 59 64 72 61 77 31 /draw1 + 8 0x00043 code c6 16 { + 5 9 0x00045 int 81 0a 10 + 10 0x00047 word 18 79 y + 11 0x00049 word 68 73 65 74 70 6f 73 setpos + 6 12 0x00050 word 48 74 65 78 74 text + 13 0x00055 word 48 73 68 6f 77 show + 7 14 0x0005a prim 13 } + 8 15 0x0005b word 18 29 ) + 16 0x0005d word 38 64 65 66 def + 10 17 0x00061 ref 39 77 69 6e /win + 18 0x00065 word 18 28 ( + 11 19 0x00067 ref 19 79 /y + 20 0x00069 int 81 14 20 + 12 21 0x0006b ref 49 74 65 78 74 /text + 22 0x00070 str 27 58 58 "XX" + 13 23 0x00073 ref 59 64 72 61 77 32 /draw2 + 24 0x00079 code c6 3a { + 14 25 0x0007b int 81 0a 10 + 26 0x0007d word 18 79 y + 27 0x0007f word 68 73 65 74 70 6f 73 setpos + 15 28 0x00086 word 48 74 65 78 74 text + 29 0x0008b word 48 73 68 6f 77 show + 16 30 0x00090 ref 19 79 /y + 31 0x00092 word 18 79 y + 32 0x00094 int 81 14 20 + 33 0x00096 word 38 61 64 64 add + 34 0x0009a word 38 64 65 66 def + 17 35 0x0009e ref 49 74 65 78 74 /text + 36 0x000a3 word 48 74 65 78 74 text + 37 0x000a8 str 37 20 58 58 " XX" + 38 0x000ac word 38 61 64 64 add + 39 0x000b0 word 38 64 65 66 def + 18 40 0x000b4 prim 13 } + 19 41 0x000b5 word 18 29 ) + 42 0x000b7 word 38 64 65 66 def + 21 43 0x000bb word 38 77 69 6e win + 44 0x000bf word 68 77 69 64 67 65 74 widget + 45 0x000c6 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 23 46 0x000d0 word 38 77 69 6e win + 47 0x000d4 get 5a 64 72 61 77 32 .draw2 + 24 48 0x000da word 38 77 69 6e win + 49 0x000de get 5a 64 72 61 77 32 .draw2 + 25 50 0x000e4 word 38 77 69 6e win + 51 0x000e8 get 5a 64 72 61 77 32 .draw2 + 27 52 0x000ee word 38 77 69 6e win + 53 0x000f2 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/code1.log.ref b/tests/0066_inheritance/code1.log.ref new file mode 100644 index 0000000..ae6913e --- /dev/null +++ b/tests/0066_inheritance/code1.log.ref @@ -0,0 +1,64 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 3 0x00024 word 78 67 65 74 66 6f 6e 74 getfont + 4 0x0002c word 78 73 65 74 66 6f 6e 74 setfont + 3 5 0x00034 ref 69 77 69 64 67 65 74 /widget + 6 0x0003b word 18 28 ( + 4 7 0x0003d ref 59 64 72 61 77 31 /draw1 + 8 0x00043 code c6 16 { + 5 9 0x00045 int 81 0a 10 + 10 0x00047 word 18 79 y + 11 0x00049 word 68 73 65 74 70 6f 73 setpos + 6 12 0x00050 word 48 74 65 78 74 text + 13 0x00055 word 48 73 68 6f 77 show + 7 14 0x0005a prim 13 } + 8 15 0x0005b word 18 29 ) + 16 0x0005d word 38 64 65 66 def + 10 17 0x00061 ref 39 77 69 6e /win + 18 0x00065 word 18 28 ( + 11 19 0x00067 ref 19 79 /y + 20 0x00069 int 81 14 20 + 12 21 0x0006b ref 49 74 65 78 74 /text + 22 0x00070 str 27 58 58 "XX" + 13 23 0x00073 ref 59 64 72 61 77 32 /draw2 + 24 0x00079 code c6 23 { + 14 25 0x0007b int 81 0a 10 + 26 0x0007d word 18 79 y + 27 0x0007f xref 84 36 setpos + 15 28 0x00081 xref 84 31 text + 29 0x00083 xref 84 2e show + 16 30 0x00085 ref 19 79 /y + 31 0x00087 word 18 79 y + 32 0x00089 int 81 14 20 + 33 0x0008b word 38 61 64 64 add + 34 0x0008f xref 84 32 def + 17 35 0x00091 xref 84 26 /text + 36 0x00093 xref 84 43 text + 37 0x00095 str 37 20 58 58 " XX" + 38 0x00099 xref 84 0e add + 39 0x0009b xref 84 3e def + 18 40 0x0009d prim 13 } + 19 41 0x0009e word 18 29 ) + 42 0x000a0 xref 84 43 def + 21 43 0x000a2 word 38 77 69 6e win + 44 0x000a6 word 68 77 69 64 67 65 74 widget + 45 0x000ad word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 23 46 0x000b7 xref 84 15 win + 47 0x000b9 get 5a 64 72 61 77 32 .draw2 + 24 48 0x000bf xref 84 1d win + 49 0x000c1 xref 84 08 .draw2 + 25 50 0x000c3 xref 84 21 win + 51 0x000c5 xref 84 0c .draw2 + 27 52 0x000c7 xref 84 25 win + 53 0x000c9 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/code2.log.ref b/tests/0066_inheritance/code2.log.ref new file mode 100644 index 0000000..06b356c --- /dev/null +++ b/tests/0066_inheritance/code2.log.ref @@ -0,0 +1,60 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 47 getgstate + 2 0x0000a prim 83 4a getconsolegstate + 3 0x0000c prim 83 3f getfont + 4 0x0000e prim 83 40 setfont + 3 5 0x00010 ref 69 77 69 64 67 65 74 /widget + 6 0x00017 prim 43 ( + 4 7 0x00018 ref 59 64 72 61 77 31 /draw1 + 8 0x0001e code c6 0e { + 5 9 0x00020 int 81 0a 10 + 10 0x00022 word 18 79 y + 11 0x00024 prim 83 3e setpos + 6 12 0x00026 word 48 74 65 78 74 text + 13 0x0002b prim 83 4c show + 7 14 0x0002d prim 13 } + 8 15 0x0002e prim 53 ) + 16 0x0002f prim 63 def + 10 17 0x00030 ref 39 77 69 6e /win + 18 0x00034 prim 43 ( + 11 19 0x00035 ref 19 79 /y + 20 0x00037 int 81 14 20 + 12 21 0x00039 ref 49 74 65 78 74 /text + 22 0x0003e str 27 58 58 "XX" + 13 23 0x00041 ref 59 64 72 61 77 32 /draw2 + 24 0x00047 code c6 1f { + 14 25 0x00049 int 81 0a 10 + 26 0x0004b word 18 79 y + 27 0x0004d prim 83 3e setpos + 15 28 0x0004f xref 84 29 text + 29 0x00051 prim 83 4c show + 16 30 0x00053 ref 19 79 /y + 31 0x00055 word 18 79 y + 32 0x00057 int 81 14 20 + 33 0x00059 prim 83 1e add + 34 0x0005b prim 63 def + 17 35 0x0005c xref 84 23 /text + 36 0x0005e xref 84 38 text + 37 0x00060 str 37 20 58 58 " XX" + 38 0x00064 prim 83 1e add + 39 0x00066 prim 63 def + 18 40 0x00067 prim 13 } + 19 41 0x00068 prim 53 ) + 42 0x00069 prim 63 def + 21 43 0x0006a word 38 77 69 6e win + 44 0x0006e word 68 77 69 64 67 65 74 widget + 45 0x00075 prim 83 35 setparent + 23 46 0x00077 xref 84 0d win + 47 0x00079 get 5a 64 72 61 77 32 .draw2 + 24 48 0x0007f xref 84 15 win + 49 0x00081 xref 84 08 .draw2 + 25 50 0x00083 xref 84 19 win + 51 0x00085 xref 84 0c .draw2 + 27 52 0x00087 xref 84 1d win + 53 0x00089 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/main.gs b/tests/0066_inheritance/main.gs new file mode 100644 index 0000000..b2e4c89 --- /dev/null +++ b/tests/0066_inheritance/main.gs @@ -0,0 +1,27 @@ +getgstate getconsolegstate getfont setfont + +/widget ( + /draw1 { + 10 y setpos + text show + } +) def + +/win ( + /y 20 + /text "XX" + /draw2 { + 10 y setpos + text show + /y y 20 add def + /text text " XX" add def + } +) def + +win widget setparent + +win .draw2 +win .draw2 +win .draw2 + +win .draw1 diff --git a/tests/0066_inheritance/mem.log.ref b/tests/0066_inheritance/mem.log.ref new file mode 100644 index 0000000..4d5becb --- /dev/null +++ b/tests/0066_inheritance/mem.log.ref @@ -0,0 +1,802 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 248] + 8: 187.01, 0x001d6b6c[ 72] + 9: 188.01, 0x001d6bbc[ 56] + 10: 192.01, 0x001d6bfc[ 20] + 11: 200.01, 0x001d6c18[ 36] + 12: 0.00, 0x001d6c44[ 204] + 13: 204.01, 0x001d6d18[ 72] + 14: 0.00, 0x001d6d68[ 24] + 15: 228.01, 0x001d6d88[ 12] + 16: 0.00, 0x001d6d9c[14848612] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 98x80, char size 8x16 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 6, "widget"> => #192.1.2.hash + #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> => #200.1.1.hash + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.2.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + |@@ @@ | + |@@ @@ | + | @@ @@ | + | @@@@@ | + | @@@ | + | @@@ | + | @@@@@ | + | @@ @@ | + |@@ @@ | + |@@ @@ | + | | + | | + | | + | | + #186.1.9.mem.ro + 75 51 12 a9 42 7a ad 60 98 67 65 74 67 73 74 61 uQ..Bz.`.getgsta + 74 65 c8 10 67 65 74 63 6f 6e 73 6f 6c 65 67 73 te..getconsolegs + 74 61 74 65 78 67 65 74 66 6f 6e 74 78 73 65 74 tatexgetfontxset + 66 6f 6e 74 69 77 69 64 67 65 74 18 28 59 64 72 fontiwidget.(Ydr + 61 77 31 c6 16 81 0a 18 79 68 73 65 74 70 6f 73 aw1.....yhsetpos + 48 74 65 78 74 48 73 68 6f 77 13 18 29 38 64 65 HtextHshow..)8de + 66 39 77 69 6e 18 28 19 79 81 14 49 74 65 78 74 f9win.(.y..Itext + 27 58 58 59 64 72 61 77 32 c6 3a 81 0a 18 79 68 'XXYdraw2.:...yh + 73 65 74 70 6f 73 48 74 65 78 74 48 73 68 6f 77 setposHtextHshow + 19 79 18 79 81 14 38 61 64 64 38 64 65 66 49 74 .y.y..8add8defIt + 65 78 74 48 74 65 78 74 37 20 58 58 38 61 64 64 extHtext7 XX8add + 38 64 65 66 13 18 29 38 64 65 66 38 77 69 6e 68 8def..)8def8winh + 77 69 64 67 65 74 98 73 65 74 70 61 72 65 6e 74 widget.setparent + 38 77 69 6e 5a 64 72 61 77 32 38 77 69 6e 5a 64 8winZdraw28winZd + 72 61 77 32 38 77 69 6e 5a 64 72 61 77 32 38 77 raw28winZdraw28w + 69 6e 5a 64 72 61 77 31 inZdraw1 + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0xf8 (0xf8) + code #186.1.9.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 6, "widget"> + 77 69 64 67 65 74 widget + #190.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3e, size 5, "draw1"> + 64 72 61 77 31 draw1 + #191.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x45, size 22> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 13 Hshow. + #192.1.2.hash + #190.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3e, size 5, "draw1"> => #191.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x45, size 22> + #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> + 77 69 6e win + #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> + 64 72 61 77 32 draw2 + #199.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x7b, size 58> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 19 79 18 79 81 14 38 61 64 64 38 Hshow.y.y..8add8 + 64 65 66 49 74 65 78 74 48 74 65 78 74 37 20 58 defItextHtext7 X + 58 38 61 64 64 38 64 65 66 13 X8add8def. + #200.1.1.hash + #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> => #199.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x7b, size 58> + #226.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9f, size 4, "text"> => #228.1.1.mem.str + #223.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x91, size 1, "y"> => #225.1.1.num.int <80 (0x50)> + #204.1.1.array + #223.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x91, size 1, "y"> + 79 y + #225.1.1.num.int <80 (0x50)> + #226.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9f, size 4, "text"> + 74 65 78 74 text + #228.1.1.mem.str + 58 58 20 58 58 20 58 58 20 58 58 XX XX XX XX diff --git a/tests/0066_inheritance/screen.log.ref b/tests/0066_inheritance/screen.log.ref new file mode 100644 index 0000000..e2c31fb --- /dev/null +++ b/tests/0066_inheritance/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0066_inheritance/trace.log.ref b/tests/0066_inheritance/trace.log.ref new file mode 100644 index 0000000..abdd14f --- /dev/null +++ b/tests/0066_inheritance/trace.log.ref @@ -0,0 +1,691 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x12, type 8, 20[16] +GC: ++#3.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #3.1.2.gstate + [1] #2.1.2.gstate +IP: #186:0x24, type 8, 37[7] +GC: --#3.1.2.gstate +GC: ++#184.1.1.font +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #184.1.2.font + [1] #2.1.2.gstate +IP: #186:0x2c, type 8, 45[7] +GC: ++#184.1.2.font +GC: --#184.1.3.font +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[6] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x3b, type 8, 60[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x3d, type 9, 62[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3e, size 5, "draw1"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x43, type 6, 69[22] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x45, size 22> + [1] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3e, size 5, "draw1"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x5b, type 8, 92[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x5d, type 8, 94[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x65, type 8, 102[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x67, type 9, 104[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x68, size 1, "y"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x69, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x68, size 1, "y"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x6b, type 9, 108[4] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x6c, size 4, "text"> + [1] #195.1.1.num.int <20 (0x14)> + [2] #194.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x68, size 1, "y"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #193.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x70, type 7, 113[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "XX"> + [1] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x6c, size 4, "text"> + [2] #195.1.1.num.int <20 (0x14)> + [3] #194.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x68, size 1, "y"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x73, type 9, 116[5] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> + [1] #197.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x71, size 2, "XX"> + [2] #196.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x6c, size 4, "text"> + [3] #195.1.1.num.int <20 (0x14)> + [4] #194.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x68, size 1, "y"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x79, type 6, 123[58] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x7b, size 58> + [1] #198.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x74, size 5, "draw2"> + [2] #197.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x71, size 2, "XX"> + [3] #196.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6c, size 4, "text"> + [4] #195.1.1.num.int <20 (0x14)> + [5] #194.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x68, size 1, "y"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0xb5, type 8, 182[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0xb7, type 8, 184[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#200.1.1.hash +GC: --#200.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xbb, type 8, 188[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xbf, type 8, 192[6] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash + [1] #200.1.2.hash +IP: #186:0xc6, type 8, 199[9] +GC: ++#192.1.2.hash +GC: --#192.1.3.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xd0, type 8, 209[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xd4, type 10, 213[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#195.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #203.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#195.1.2.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#197.1.1.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x71, size 2, "XX"> +IP: #199:0x10, type 8, 17[4] +GC: --#197.1.2.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#195.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <20 (0x14)> + [1] #195.1.2.num.int <20 (0x14)> + [2] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#206.1.1.num.int +GC: --#195.1.2.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <40 (0x28)> + [1] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#205.1.1.mem.ref.ro +GC: ++#207.1.1.num.int +GC: --#194.1.1.mem.ref.ro +GC: --#186.1.11.mem.ro +GC: --#195.1.1.num.int +GC: --#207.1.2.num.int +GC: --#205.1.2.mem.ref.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#197.1.1.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.str.ro <#186.1.11.mem.ro, ofs 0x71, size 2, "XX"> + [1] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #197.1.2.mem.str.ro <#186.1.12.mem.ro, ofs 0x71, size 2, "XX"> + [2] #208.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.12.mem.ro +GC: --#197.1.2.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str + [1] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#208.1.1.mem.ref.ro +GC: ++#210.1.1.mem.str +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.11.mem.ro +GC: --#197.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#210.1.2.mem.str +GC: --#208.1.2.mem.ref.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#202.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xda, type 8, 219[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xde, type 10, 223[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#207.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <40 (0x28)> + [1] #213.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#207.1.2.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#210.1.1.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.mem.str +IP: #199:0x10, type 8, 17[4] +GC: --#210.1.2.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#207.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <40 (0x28)> + [1] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <20 (0x14)> + [1] #207.1.2.num.int <40 (0x28)> + [2] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#215.1.1.num.int +GC: --#207.1.2.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <60 (0x3c)> + [1] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#214.1.1.mem.ref.ro +GC: ++#216.1.1.num.int +GC: --#205.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#207.1.1.num.int +GC: --#216.1.2.num.int +GC: --#214.1.2.mem.ref.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#210.1.1.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.mem.str + [1] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #210.1.2.mem.str + [2] #217.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#210.1.2.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.str + [1] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#217.1.1.mem.ref.ro +GC: ++#219.1.1.mem.str +GC: --#208.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#210.1.1.mem.str +GC: --#219.1.2.mem.str +GC: --#217.1.2.mem.ref.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#211.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#212.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe4, type 8, 229[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xe8, type 10, 233[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <60 (0x3c)> + [1] #222.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#216.1.2.num.int +GC: --#222.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#219.1.1.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.mem.str +IP: #199:0x10, type 8, 17[4] +GC: --#219.1.2.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <60 (0x3c)> + [1] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <20 (0x14)> + [1] #216.1.2.num.int <60 (0x3c)> + [2] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#224.1.1.num.int +GC: --#216.1.2.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <80 (0x50)> + [1] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#223.1.1.mem.ref.ro +GC: ++#225.1.1.num.int +GC: --#214.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#216.1.1.num.int +GC: --#225.1.2.num.int +GC: --#223.1.2.mem.ref.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#219.1.1.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.mem.str + [1] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #219.1.2.mem.str + [2] #226.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#227.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#219.1.2.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.str + [1] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#226.1.1.mem.ref.ro +GC: ++#228.1.1.mem.str +GC: --#217.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#219.1.1.mem.str +GC: --#228.1.2.mem.str +GC: --#226.1.2.mem.ref.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#220.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#221.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xee, type 8, 239[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xf2, type 10, 243[5] +GC: ++#191.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x0, type 1, 10 (0xa) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <10 (0xa)> +IP: #191:0x2, type 8, 3[1] +GC: ++#225.1.1.num.int +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.2.num.int <80 (0x50)> + [1] #231.1.1.num.int <10 (0xa)> +IP: #191:0x4, type 8, 5[6] +GC: --#225.1.2.num.int +GC: --#231.1.1.num.int +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0xb, type 8, 12[4] +GC: ++#228.1.1.mem.str +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.2.mem.str +IP: #191:0x10, type 8, 17[4] +GC: --#228.1.2.mem.str +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x15, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#229.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#191.1.2.mem.code.ro +GC: --#230.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0067_class/basic.log.ref b/tests/0067_class/basic.log.ref new file mode 100644 index 0000000..f17069f --- /dev/null +++ b/tests/0067_class/basic.log.ref @@ -0,0 +1,691 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "class"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "class"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate + [1] #xxxx.1.2.gstate +GC: --#xxxx.1.2.gstate +GC: ++#xxxx.1.1.font +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.font + [1] #xxxx.1.2.gstate +GC: ++#xxxx.1.2.font +GC: --#xxxx.1.3.font +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "draw1"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "widget"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "draw1"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "widget"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "widget"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.2.hash + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "text"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "y"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.2.hash + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "win"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.2.hash + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "draw2"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.2.hash + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "win"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "draw2"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.2.hash + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [1] #xxxx.1.1.hash + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: ++#xxxx.1.2.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.3.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.13.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.14.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.14.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.14.mem.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <60 (0x3c)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <80 (0x50)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <80 (0x50)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0067_class/code.log.ref b/tests/0067_class/code.log.ref new file mode 100644 index 0000000..e3af9bc --- /dev/null +++ b/tests/0067_class/code.log.ref @@ -0,0 +1,74 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 2b { + 9 3 0x00010 int 21 2 + 4 0x00011 word 58 69 6e 64 65 78 index + 5 0x00017 word 48 65 78 63 68 exch + 6 0x0001c word 48 67 64 65 66 gdef + 10 7 0x00021 word 48 65 78 63 68 exch + 8 0x00026 word 48 65 78 65 63 exec + 9 0x0002b word 48 65 78 63 68 exch + 10 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 11 11 0x0003a prim 13 } + 12 0x0003b word 38 64 65 66 def + 14 13 0x0003f word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 14 0x00049 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 15 0x0005b word 78 67 65 74 66 6f 6e 74 getfont + 16 0x00063 word 78 73 65 74 66 6f 6e 74 setfont + 16 17 0x0006b ref 69 77 69 64 67 65 74 /widget + 18 0x00072 word 18 28 ( + 17 19 0x00074 ref 59 64 72 61 77 31 /draw1 + 20 0x0007a code c6 16 { + 18 21 0x0007c int 81 0a 10 + 22 0x0007e word 18 79 y + 23 0x00080 word 68 73 65 74 70 6f 73 setpos + 19 24 0x00087 word 48 74 65 78 74 text + 25 0x0008c word 48 73 68 6f 77 show + 20 26 0x00091 prim 13 } + 21 27 0x00092 word 18 29 ) + 28 0x00094 word 38 64 65 66 def + 23 29 0x00098 ref 39 77 69 6e /win + 30 0x0009c word 68 77 69 64 67 65 74 widget + 31 0x000a3 word 18 28 ( + 24 32 0x000a5 ref 19 79 /y + 33 0x000a7 int 81 14 20 + 25 34 0x000a9 ref 49 74 65 78 74 /text + 35 0x000ae str 27 58 58 "XX" + 26 36 0x000b1 ref 59 64 72 61 77 32 /draw2 + 37 0x000b7 code c6 3a { + 27 38 0x000b9 int 81 0a 10 + 39 0x000bb word 18 79 y + 40 0x000bd word 68 73 65 74 70 6f 73 setpos + 28 41 0x000c4 word 48 74 65 78 74 text + 42 0x000c9 word 48 73 68 6f 77 show + 29 43 0x000ce ref 19 79 /y + 44 0x000d0 word 18 79 y + 45 0x000d2 int 81 14 20 + 46 0x000d4 word 38 61 64 64 add + 47 0x000d8 word 38 64 65 66 def + 30 48 0x000dc ref 49 74 65 78 74 /text + 49 0x000e1 word 48 74 65 78 74 text + 50 0x000e6 str 37 20 58 58 " XX" + 51 0x000ea word 38 61 64 64 add + 52 0x000ee word 38 64 65 66 def + 31 53 0x000f2 prim 13 } + 32 54 0x000f3 word 18 29 ) + 55 0x000f5 word 58 63 6c 61 73 73 class + 34 56 0x000fb word 38 77 69 6e win + 57 0x000ff get 5a 64 72 61 77 32 .draw2 + 35 58 0x00105 word 38 77 69 6e win + 59 0x00109 get 5a 64 72 61 77 32 .draw2 + 36 60 0x0010f word 38 77 69 6e win + 61 0x00113 get 5a 64 72 61 77 32 .draw2 + 38 62 0x00119 word 38 77 69 6e win + 63 0x0011d get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/code1.log.ref b/tests/0067_class/code1.log.ref new file mode 100644 index 0000000..0191905 --- /dev/null +++ b/tests/0067_class/code1.log.ref @@ -0,0 +1,74 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 25 { + 9 3 0x00010 int 21 2 + 4 0x00011 word 58 69 6e 64 65 78 index + 5 0x00017 word 48 65 78 63 68 exch + 6 0x0001c word 48 67 64 65 66 gdef + 10 7 0x00021 xref 84 0a exch + 8 0x00023 word 48 65 78 65 63 exec + 9 0x00028 xref 84 11 exch + 10 0x0002a word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 11 11 0x00034 prim 13 } + 12 0x00035 word 38 64 65 66 def + 14 13 0x00039 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 14 0x00043 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 15 0x00055 word 78 67 65 74 66 6f 6e 74 getfont + 16 0x0005d word 78 73 65 74 66 6f 6e 74 setfont + 16 17 0x00065 ref 69 77 69 64 67 65 74 /widget + 18 0x0006c word 18 28 ( + 17 19 0x0006e ref 59 64 72 61 77 31 /draw1 + 20 0x00074 code c6 16 { + 18 21 0x00076 int 81 0a 10 + 22 0x00078 word 18 79 y + 23 0x0007a word 68 73 65 74 70 6f 73 setpos + 19 24 0x00081 word 48 74 65 78 74 text + 25 0x00086 word 48 73 68 6f 77 show + 20 26 0x0008b prim 13 } + 21 27 0x0008c word 18 29 ) + 28 0x0008e xref 84 59 def + 23 29 0x00090 ref 39 77 69 6e /win + 30 0x00094 word 68 77 69 64 67 65 74 widget + 31 0x0009b word 18 28 ( + 24 32 0x0009d ref 19 79 /y + 33 0x0009f int 81 14 20 + 25 34 0x000a1 ref 49 74 65 78 74 /text + 35 0x000a6 str 27 58 58 "XX" + 26 36 0x000a9 ref 59 64 72 61 77 32 /draw2 + 37 0x000af code c6 23 { + 27 38 0x000b1 int 81 0a 10 + 39 0x000b3 word 18 79 y + 40 0x000b5 xref 84 3b setpos + 28 41 0x000b7 xref 84 36 text + 42 0x000b9 xref 84 33 show + 29 43 0x000bb ref 19 79 /y + 44 0x000bd word 18 79 y + 45 0x000bf int 81 14 20 + 46 0x000c1 word 38 61 64 64 add + 47 0x000c5 xref 84 90 def + 30 48 0x000c7 xref 84 26 /text + 49 0x000c9 xref 84 48 text + 50 0x000cb str 37 20 58 58 " XX" + 51 0x000cf xref 84 0e add + 52 0x000d1 xref 84 9c def + 31 53 0x000d3 prim 13 } + 32 54 0x000d4 word 18 29 ) + 55 0x000d6 word 58 63 6c 61 73 73 class + 34 56 0x000dc word 38 77 69 6e win + 57 0x000e0 get 5a 64 72 61 77 32 .draw2 + 35 58 0x000e6 xref 84 0a win + 59 0x000e8 xref 84 08 .draw2 + 36 60 0x000ea xref 84 0e win + 61 0x000ec xref 84 0c .draw2 + 38 62 0x000ee xref 84 12 win + 63 0x000f0 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/code2.log.ref b/tests/0067_class/code2.log.ref new file mode 100644 index 0000000..45ae905 --- /dev/null +++ b/tests/0067_class/code2.log.ref @@ -0,0 +1,70 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 10 { + 9 3 0x00010 int 21 2 + 4 0x00011 prim 83 1c index + 5 0x00013 prim 83 18 exch + 6 0x00015 prim 83 08 gdef + 10 7 0x00017 prim 83 18 exch + 8 0x00019 prim 83 1d exec + 9 0x0001b prim 83 18 exch + 10 0x0001d prim 83 35 setparent + 11 11 0x0001f prim 13 } + 12 0x00020 prim 63 def + 14 13 0x00021 prim 83 47 getgstate + 14 0x00023 prim 83 4a getconsolegstate + 15 0x00025 prim 83 3f getfont + 16 0x00027 prim 83 40 setfont + 16 17 0x00029 ref 69 77 69 64 67 65 74 /widget + 18 0x00030 prim 43 ( + 17 19 0x00031 ref 59 64 72 61 77 31 /draw1 + 20 0x00037 code c6 0e { + 18 21 0x00039 int 81 0a 10 + 22 0x0003b word 18 79 y + 23 0x0003d prim 83 3e setpos + 19 24 0x0003f word 48 74 65 78 74 text + 25 0x00044 prim 83 4c show + 20 26 0x00046 prim 13 } + 21 27 0x00047 prim 53 ) + 28 0x00048 prim 63 def + 23 29 0x00049 ref 39 77 69 6e /win + 30 0x0004d word 68 77 69 64 67 65 74 widget + 31 0x00054 prim 43 ( + 24 32 0x00055 ref 19 79 /y + 33 0x00057 int 81 14 20 + 25 34 0x00059 ref 49 74 65 78 74 /text + 35 0x0005e str 27 58 58 "XX" + 26 36 0x00061 ref 59 64 72 61 77 32 /draw2 + 37 0x00067 code c6 1f { + 27 38 0x00069 int 81 0a 10 + 39 0x0006b word 18 79 y + 40 0x0006d prim 83 3e setpos + 28 41 0x0006f xref 84 30 text + 42 0x00071 prim 83 4c show + 29 43 0x00073 ref 19 79 /y + 44 0x00075 word 18 79 y + 45 0x00077 int 81 14 20 + 46 0x00079 prim 83 1e add + 47 0x0007b prim 63 def + 30 48 0x0007c xref 84 23 /text + 49 0x0007e xref 84 3f text + 50 0x00080 str 37 20 58 58 " XX" + 51 0x00084 prim 83 1e add + 52 0x00086 prim 63 def + 31 53 0x00087 prim 13 } + 32 54 0x00088 prim 53 ) + 55 0x00089 word 58 63 6c 61 73 73 class + 34 56 0x0008f word 38 77 69 6e win + 57 0x00093 get 5a 64 72 61 77 32 .draw2 + 35 58 0x00099 xref 84 0a win + 59 0x0009b xref 84 08 .draw2 + 36 60 0x0009d xref 84 0e win + 61 0x0009f xref 84 0c .draw2 + 38 62 0x000a1 xref 84 12 win + 63 0x000a3 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/main.gs b/tests/0067_class/main.gs new file mode 100644 index 0000000..5207ec2 --- /dev/null +++ b/tests/0067_class/main.gs @@ -0,0 +1,38 @@ +# a sample 'class' implementation +# +# ( word_1 hash_1 hash_2 -- ) +# +# Define hash_2 as word_1 and make hash_1 it's parent. word_1 is created in +# the global context. +# +/class { + 2 index exch gdef + exch exec exch setparent +} def + + +getgstate getconsolegstate getfont setfont + +/widget ( + /draw1 { + 10 y setpos + text show + } +) def + +/win widget ( + /y 20 + /text "XX" + /draw2 { + 10 y setpos + text show + /y y 20 add def + /text text " XX" add def + } +) class + +win .draw2 +win .draw2 +win .draw2 + +win .draw1 diff --git a/tests/0067_class/mem.log.ref b/tests/0067_class/mem.log.ref new file mode 100644 index 0000000..cd65cab --- /dev/null +++ b/tests/0067_class/mem.log.ref @@ -0,0 +1,812 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 292] + 8: 187.01, 0x001d6b98[ 72] + 9: 188.01, 0x001d6be8[ 56] + 10: 194.01, 0x001d6c28[ 20] + 11: 202.01, 0x001d6c44[ 36] + 12: 0.00, 0x001d6c70[ 56] + 13: 205.01, 0x001d6cb0[ 72] + 14: 0.00, 0x001d6d00[ 172] + 15: 232.01, 0x001d6db4[ 12] + 16: 0.00, 0x001d6dc8[14848568] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 98x80, char size 8x16 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #189.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9, size 5, "class"> => #190.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x10, size 43> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #191.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x6c, size 6, "widget"> => #194.1.2.hash + #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> => #202.1.1.hash + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.2.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + |@@ @@ | + |@@ @@ | + | @@ @@ | + | @@@@@ | + | @@@ | + | @@@ | + | @@@@@ | + | @@ @@ | + |@@ @@ | + |@@ @@ | + | | + | | + | | + | | + #186.1.11.mem.ro + 75 51 12 a9 42 7a ad 60 59 63 6c 61 73 73 c6 2b uQ..Bz.`Yclass.+ + 21 58 69 6e 64 65 78 48 65 78 63 68 48 67 64 65 !XindexHexchHgde + 66 48 65 78 63 68 48 65 78 65 63 48 65 78 63 68 fHexchHexecHexch + 98 73 65 74 70 61 72 65 6e 74 13 38 64 65 66 98 .setparent.8def. + 67 65 74 67 73 74 61 74 65 c8 10 67 65 74 63 6f getgstate..getco + 6e 73 6f 6c 65 67 73 74 61 74 65 78 67 65 74 66 nsolegstatexgetf + 6f 6e 74 78 73 65 74 66 6f 6e 74 69 77 69 64 67 ontxsetfontiwidg + 65 74 18 28 59 64 72 61 77 31 c6 16 81 0a 18 79 et.(Ydraw1.....y + 68 73 65 74 70 6f 73 48 74 65 78 74 48 73 68 6f hsetposHtextHsho + 77 13 18 29 38 64 65 66 39 77 69 6e 68 77 69 64 w..)8def9winhwid + 67 65 74 18 28 19 79 81 14 49 74 65 78 74 27 58 get.(.y..Itext'X + 58 59 64 72 61 77 32 c6 3a 81 0a 18 79 68 73 65 XYdraw2.:...yhse + 74 70 6f 73 48 74 65 78 74 48 73 68 6f 77 19 79 tposHtextHshow.y + 18 79 81 14 38 61 64 64 38 64 65 66 49 74 65 78 .y..8add8defItex + 74 48 74 65 78 74 37 20 58 58 38 61 64 64 38 64 tHtext7 XX8add8d + 65 66 13 18 29 58 63 6c 61 73 73 38 77 69 6e 5a ef..)Xclass8winZ + 64 72 61 77 32 38 77 69 6e 5a 64 72 61 77 32 38 draw28winZdraw28 + 77 69 6e 5a 64 72 61 77 32 38 77 69 6e 5a 64 72 winZdraw28winZdr + 61 77 31 aw1 + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x123 (0x123) + code #186.1.11.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9, size 5, "class"> + 63 6c 61 73 73 class + #190.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x10, size 43> + 21 58 69 6e 64 65 78 48 65 78 63 68 48 67 64 65 !XindexHexchHgde + 66 48 65 78 63 68 48 65 78 65 63 48 65 78 63 68 fHexchHexecHexch + 98 73 65 74 70 61 72 65 6e 74 13 .setparent. + #191.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x6c, size 6, "widget"> + 77 69 64 67 65 74 widget + #192.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x75, size 5, "draw1"> + 64 72 61 77 31 draw1 + #193.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x7c, size 22> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 13 Hshow. + #194.1.2.hash + #192.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x75, size 5, "draw1"> => #193.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x7c, size 22> + #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> + 77 69 6e win + #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> + 64 72 61 77 32 draw2 + #201.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xb9, size 58> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 19 79 18 79 81 14 38 61 64 64 38 Hshow.y.y..8add8 + 64 65 66 49 74 65 78 74 48 74 65 78 74 37 20 58 defItextHtext7 X + 58 38 61 64 64 38 64 65 66 13 X8add8def. + #202.1.1.hash + #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> => #201.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xb9, size 58> + #230.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xdd, size 4, "text"> => #232.1.1.mem.str + #227.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xcf, size 1, "y"> => #229.1.1.num.int <80 (0x50)> + #205.1.1.array + #227.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xcf, size 1, "y"> + 79 y + #229.1.1.num.int <80 (0x50)> + #230.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xdd, size 4, "text"> + 74 65 78 74 text + #232.1.1.mem.str + 58 58 20 58 58 20 58 58 20 58 58 XX XX XX XX diff --git a/tests/0067_class/screen.log.ref b/tests/0067_class/screen.log.ref new file mode 100644 index 0000000..e2c31fb --- /dev/null +++ b/tests/0067_class/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0067_class/trace.log.ref b/tests/0067_class/trace.log.ref new file mode 100644 index 0000000..9efaff2 --- /dev/null +++ b/tests/0067_class/trace.log.ref @@ -0,0 +1,787 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "class"> +IP: #186:0xe, type 6, 16[43] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x10, size 43> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "class"> +IP: #186:0x3b, type 8, 60[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3f, type 8, 64[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x49, type 8, 75[16] +GC: ++#3.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #3.1.2.gstate + [1] #2.1.2.gstate +IP: #186:0x5b, type 8, 92[7] +GC: --#3.1.2.gstate +GC: ++#184.1.1.font +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #184.1.2.font + [1] #2.1.2.gstate +IP: #186:0x63, type 8, 100[7] +GC: ++#184.1.2.font +GC: --#184.1.3.font +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6b, type 9, 108[6] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x72, type 8, 115[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x74, type 9, 117[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x75, size 5, "draw1"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x7a, type 6, 124[22] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x7c, size 22> + [1] #192.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x75, size 5, "draw1"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x92, type 8, 147[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x94, type 8, 149[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x98, type 9, 153[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0x9c, type 8, 157[6] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa3, type 8, 164[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa5, type 9, 166[1] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0xa6, size 1, "y"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #194.1.2.hash + [3] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa7, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <20 (0x14)> + [1] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0xa6, size 1, "y"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #194.1.2.hash + [4] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa9, type 9, 170[4] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0xaa, size 4, "text"> + [1] #197.1.1.num.int <20 (0x14)> + [2] #196.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0xa6, size 1, "y"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #194.1.2.hash + [5] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xae, type 7, 175[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xaf, size 2, "XX"> + [1] #198.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xaa, size 4, "text"> + [2] #197.1.1.num.int <20 (0x14)> + [3] #196.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa6, size 1, "y"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #194.1.2.hash + [6] #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xb1, type 9, 178[5] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> + [1] #199.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xaf, size 2, "XX"> + [2] #198.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xaa, size 4, "text"> + [3] #197.1.1.num.int <20 (0x14)> + [4] #196.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xa6, size 1, "y"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #194.1.2.hash + [7] #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xb7, type 6, 185[58] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0xb9, size 58> + [1] #200.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xb2, size 5, "draw2"> + [2] #199.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xaf, size 2, "XX"> + [3] #198.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xaa, size 4, "text"> + [4] #197.1.1.num.int <20 (0x14)> + [5] #196.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xa6, size 1, "y"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #194.1.2.hash + [8] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xf3, type 8, 244[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xf5, type 8, 246[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x0, type 1, 2 (0x2) +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <2 (0x2)> + [1] #202.1.1.hash + [2] #194.1.2.hash + [3] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x1, type 8, 2[5] +GC: --#204.1.1.num.int +GC: ++#195.1.1.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [1] #202.1.1.hash + [2] #194.1.2.hash + [3] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x7, type 8, 8[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [2] #194.1.2.hash + [3] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0xc, type 8, 13[4] +GC: ++#195.1.2.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#195.1.3.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x11, type 8, 18[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [1] #194.1.2.hash +IP: #190:0x16, type 8, 23[4] +GC: ++#202.1.1.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #194.1.2.hash +IP: #190:0x1b, type 8, 28[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #202.1.2.hash +IP: #190:0x20, type 8, 33[9] +GC: ++#194.1.2.hash +GC: --#194.1.3.hash +GC: --#202.1.2.hash +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x2a, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#203.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xfb, type 8, 252[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0xff, type 10, 256[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#197.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <20 (0x14)> + [1] #208.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#197.1.2.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#199.1.1.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.mem.str.ro <#186.1.12.mem.ro, ofs 0xaf, size 2, "XX"> +IP: #201:0x10, type 8, 17[4] +GC: --#199.1.2.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#197.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <20 (0x14)> + [1] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <20 (0x14)> + [1] #197.1.2.num.int <20 (0x14)> + [2] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#210.1.1.num.int +GC: --#197.1.2.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <40 (0x28)> + [1] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#209.1.1.mem.ref.ro +GC: ++#211.1.1.num.int +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.13.mem.ro +GC: --#197.1.1.num.int +GC: --#211.1.2.num.int +GC: --#209.1.2.mem.ref.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#199.1.1.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.mem.str.ro <#186.1.13.mem.ro, ofs 0xaf, size 2, "XX"> + [1] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #199.1.2.mem.str.ro <#186.1.14.mem.ro, ofs 0xaf, size 2, "XX"> + [2] #212.1.1.mem.ref.ro <#186.1.14.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#213.1.1.mem.str.ro +GC: --#186.1.14.mem.ro +GC: --#199.1.2.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str + [1] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#212.1.1.mem.ref.ro +GC: ++#214.1.1.mem.str +GC: --#198.1.1.mem.ref.ro +GC: --#186.1.13.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.12.mem.ro +GC: --#214.1.2.mem.str +GC: --#212.1.2.mem.ref.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#207.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x105, type 8, 262[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x109, type 10, 266[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#211.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.num.int <40 (0x28)> + [1] #217.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#211.1.2.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#214.1.1.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.mem.str +IP: #201:0x10, type 8, 17[4] +GC: --#214.1.2.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#211.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.num.int <40 (0x28)> + [1] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <20 (0x14)> + [1] #211.1.2.num.int <40 (0x28)> + [2] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#219.1.1.num.int +GC: --#211.1.2.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <60 (0x3c)> + [1] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#218.1.1.mem.ref.ro +GC: ++#220.1.1.num.int +GC: --#209.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#211.1.1.num.int +GC: --#220.1.2.num.int +GC: --#218.1.2.mem.ref.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#214.1.1.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.mem.str + [1] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #214.1.2.mem.str + [2] #221.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#222.1.1.mem.str.ro +GC: --#186.1.13.mem.ro +GC: --#214.1.2.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str + [1] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#221.1.1.mem.ref.ro +GC: ++#223.1.1.mem.str +GC: --#212.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#214.1.1.mem.str +GC: --#223.1.2.mem.str +GC: --#221.1.2.mem.ref.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#215.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#216.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x10f, type 8, 272[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x113, type 10, 276[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#220.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.2.num.int <60 (0x3c)> + [1] #226.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#220.1.2.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#223.1.1.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.2.mem.str +IP: #201:0x10, type 8, 17[4] +GC: --#223.1.2.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#220.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.2.num.int <60 (0x3c)> + [1] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <20 (0x14)> + [1] #220.1.2.num.int <60 (0x3c)> + [2] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#228.1.1.num.int +GC: --#220.1.2.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <80 (0x50)> + [1] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#227.1.1.mem.ref.ro +GC: ++#229.1.1.num.int +GC: --#218.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#220.1.1.num.int +GC: --#229.1.2.num.int +GC: --#227.1.2.mem.ref.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#223.1.1.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.2.mem.str + [1] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #223.1.2.mem.str + [2] #230.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#231.1.1.mem.str.ro +GC: --#186.1.13.mem.ro +GC: --#223.1.2.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.str + [1] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#230.1.1.mem.ref.ro +GC: ++#232.1.1.mem.str +GC: --#221.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#223.1.1.mem.str +GC: --#232.1.2.mem.str +GC: --#230.1.2.mem.ref.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#224.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#225.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x119, type 8, 282[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x11d, type 10, 286[5] +GC: ++#193.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0x0, type 1, 10 (0xa) +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <10 (0xa)> +IP: #193:0x2, type 8, 3[1] +GC: ++#229.1.1.num.int +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.2.num.int <80 (0x50)> + [1] #235.1.1.num.int <10 (0xa)> +IP: #193:0x4, type 8, 5[6] +GC: --#229.1.2.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0xb, type 8, 12[4] +GC: ++#232.1.1.mem.str +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.2.mem.str +IP: #193:0x10, type 8, 17[4] +GC: --#232.1.2.mem.str +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0x15, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#233.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#193.1.2.mem.code.ro +GC: --#234.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0068_utf8/basic.log.ref b/tests/0068_utf8/basic.log.ref new file mode 100644 index 0000000..b124e74 --- /dev/null +++ b/tests/0068_utf8/basic.log.ref @@ -0,0 +1,87 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "s"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "s"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.4.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0068_utf8/code.log.ref b/tests/0068_utf8/code.log.ref new file mode 100644 index 0000000..7b515ff --- /dev/null +++ b/tests/0068_utf8/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f word 38 64 65 66 def + 3 4 0x00023 ref 19 61 /a + 5 0x00025 word 18 73 s + 6 0x00027 word a8 75 74 66 38 64 65 63 utf8decode + 6f 64 65 + 7 0x00032 word 38 64 65 66 def + 5 8 0x00036 ref 19 65 /e + 9 0x00038 word 18 61 a + 10 0x0003a word a8 75 74 66 38 65 6e 63 utf8encode + 6f 64 65 + 11 0x00045 word 38 64 65 66 def + 7 12 0x00049 word 18 65 e + 13 0x0004b word 18 73 s + 14 0x0004d word 28 65 71 eq diff --git a/tests/0068_utf8/code1.log.ref b/tests/0068_utf8/code1.log.ref new file mode 100644 index 0000000..b3362f9 --- /dev/null +++ b/tests/0068_utf8/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f word 38 64 65 66 def + 3 4 0x00023 ref 19 61 /a + 5 0x00025 word 18 73 s + 6 0x00027 word a8 75 74 66 38 64 65 63 utf8decode + 6f 64 65 + 7 0x00032 xref 84 13 def + 5 8 0x00034 ref 19 65 /e + 9 0x00036 word 18 61 a + 10 0x00038 word a8 75 74 66 38 65 6e 63 utf8encode + 6f 64 65 + 11 0x00043 xref 84 24 def + 7 12 0x00045 word 18 65 e + 13 0x00047 word 18 73 s + 14 0x00049 word 28 65 71 eq diff --git a/tests/0068_utf8/code2.log.ref b/tests/0068_utf8/code2.log.ref new file mode 100644 index 0000000..c4332c3 --- /dev/null +++ b/tests/0068_utf8/code2.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f prim 63 def + 3 4 0x00020 ref 19 61 /a + 5 0x00022 word 18 73 s + 6 0x00024 prim 83 57 utf8decode + 7 0x00026 prim 63 def + 5 8 0x00027 ref 19 65 /e + 9 0x00029 word 18 61 a + 10 0x0002b prim 83 58 utf8encode + 11 0x0002d prim 63 def + 7 12 0x0002e word 18 65 e + 13 0x00030 word 18 73 s + 14 0x00032 prim 83 2d eq diff --git a/tests/0068_utf8/main.gs b/tests/0068_utf8/main.gs new file mode 100644 index 0000000..053afa5 --- /dev/null +++ b/tests/0068_utf8/main.gs @@ -0,0 +1,7 @@ +/s "ab \xa0 cd \x00 öä € " def + +/a s utf8decode def + +/e a utf8encode def + +e s eq diff --git a/tests/0068_utf8/mem.log.ref b/tests/0068_utf8/mem.log.ref new file mode 100644 index 0000000..1b15d6f --- /dev/null +++ b/tests/0068_utf8/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 80] + 8: 187.01, 0x001d6ac4[ 72] + 9: 188.01, 0x001d6b14[ 56] + 10: 192.01, 0x001d6b54[ 68] + 11: 0.00, 0x001d6ba0[ 92] + 12: 209.01, 0x001d6c04[ 20] + 13: 0.00, 0x001d6c20[14848992] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x24, size 1, "a"> => #192.1.1.array + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> => #209.1.1.mem.str + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 1, "s"> => #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 19 73 c7 13 61 62 20 a0 uQ..Bz.`.s..ab . + 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 82 ac 20 38 cd . .... ... 8 + 64 65 66 19 61 18 73 a8 75 74 66 38 64 65 63 6f def.a.s.utf8deco + 64 65 38 64 65 66 19 65 18 61 a8 75 74 66 38 65 de8def.e.a.utf8e + 6e 63 6f 64 65 38 64 65 66 18 65 18 73 28 65 71 ncode8def.e.s(eq + #187.1.1.array + [ 0] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x50 (0x50) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 1, "s"> + 73 s + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + 61 62 20 a0 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 ab . cd . .... . + 82 ac 20 .. + #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x24, size 1, "a"> + 61 a + #192.1.1.array + [ 0] #193.1.1.num.int <97 (0x61)> + [ 1] #194.1.1.num.int <98 (0x62)> + [ 2] #195.1.1.num.int <32 (0x20)> + [ 3] #196.1.1.num.int <-160 (0xffffffffffffff60)> + [ 4] #197.1.1.num.int <32 (0x20)> + [ 5] #198.1.1.num.int <99 (0x63)> + [ 6] #199.1.1.num.int <100 (0x64)> + [ 7] #200.1.1.num.int <32 (0x20)> + [ 8] #201.1.1.num.int <0 (0x0)> + [ 9] #202.1.1.num.int <32 (0x20)> + [10] #203.1.1.num.int <246 (0xf6)> + [11] #204.1.1.num.int <228 (0xe4)> + [12] #205.1.1.num.int <32 (0x20)> + [13] #206.1.1.num.int <8364 (0x20ac)> + [14] #207.1.1.num.int <32 (0x20)> + #193.1.1.num.int <97 (0x61)> + #194.1.1.num.int <98 (0x62)> + #195.1.1.num.int <32 (0x20)> + #196.1.1.num.int <-160 (0xffffffffffffff60)> + #197.1.1.num.int <32 (0x20)> + #198.1.1.num.int <99 (0x63)> + #199.1.1.num.int <100 (0x64)> + #200.1.1.num.int <32 (0x20)> + #201.1.1.num.int <0 (0x0)> + #202.1.1.num.int <32 (0x20)> + #203.1.1.num.int <246 (0xf6)> + #204.1.1.num.int <228 (0xe4)> + #205.1.1.num.int <32 (0x20)> + #206.1.1.num.int <8364 (0x20ac)> + #207.1.1.num.int <32 (0x20)> + #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> + 65 e + #209.1.1.mem.str + 61 62 20 a0 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 ab . cd . .... . + 82 ac 20 .. + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0068_utf8/screen.log.ref b/tests/0068_utf8/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0068_utf8/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0068_utf8/trace.log.ref b/tests/0068_utf8/trace.log.ref new file mode 100644 index 0000000..670dfc1 --- /dev/null +++ b/tests/0068_utf8/trace.log.ref @@ -0,0 +1,102 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 1, "s"> +IP: #186:0xa, type 7, 12[19] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 1, "s"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.str.ro +GC: --#190.1.2.mem.str.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[1] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x25, type 8, 38[1] +GC: ++#190.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.mem.str.ro <#186.1.4.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x27, type 8, 40[10] +GC: --#190.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.array + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x32, type 8, 51[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.array +GC: --#192.1.2.array +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x36, type 9, 55[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x38, type 8, 57[1] +GC: ++#192.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.array + [1] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x3a, type 8, 59[10] +GC: --#192.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str + [1] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x45, type 8, 70[3] +GC: ++#208.1.1.mem.ref.ro +GC: ++#209.1.1.mem.str +GC: --#209.1.2.mem.str +GC: --#208.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[1] +GC: ++#209.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.mem.str +IP: #186:0x4b, type 8, 76[1] +GC: ++#190.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #209.1.2.mem.str +IP: #186:0x4d, type 8, 78[2] +GC: --#190.1.2.mem.str.ro +GC: --#209.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0069_hash_set_with_parent/basic.log.ref b/tests/0069_hash_set_with_parent/basic.log.ref new file mode 100644 index 0000000..5238799 --- /dev/null +++ b/tests/0069_hash_set_with_parent/basic.log.ref @@ -0,0 +1,163 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "x"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <30 (0x1e)> diff --git a/tests/0069_hash_set_with_parent/code.log.ref b/tests/0069_hash_set_with_parent/code.log.ref new file mode 100644 index 0000000..9c8442b --- /dev/null +++ b/tests/0069_hash_set_with_parent/code.log.ref @@ -0,0 +1,33 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 word 38 64 65 66 def + 4 13 0x00028 word 38 66 6f 6f foo + 14 0x0002c word 38 62 61 72 bar + 15 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x0003a word 38 66 6f 6f foo + 17 0x0003e str 17 78 "x" + 18 0x00040 int 81 1e 30 + 19 0x00042 word 38 70 75 74 put + 9 20 0x00046 word 38 66 6f 6f foo + 21 0x0004a str 17 78 "x" + 22 0x0004c word 38 67 65 74 get + 10 23 0x00050 word 38 62 61 72 bar + 24 0x00054 str 17 78 "x" + 25 0x00056 word 38 67 65 74 get diff --git a/tests/0069_hash_set_with_parent/code1.log.ref b/tests/0069_hash_set_with_parent/code1.log.ref new file mode 100644 index 0000000..bedd77f --- /dev/null +++ b/tests/0069_hash_set_with_parent/code1.log.ref @@ -0,0 +1,33 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 xref 84 10 def + 4 13 0x00026 word 38 66 6f 6f foo + 14 0x0002a word 38 62 61 72 bar + 15 0x0002e word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x00038 xref 84 12 foo + 17 0x0003a str 17 78 "x" + 18 0x0003c int 81 1e 30 + 19 0x0003e word 38 70 75 74 put + 9 20 0x00042 xref 84 1c foo + 21 0x00044 str 17 78 "x" + 22 0x00046 word 38 67 65 74 get + 10 23 0x0004a xref 84 20 bar + 24 0x0004c str 17 78 "x" + 25 0x0004e xref 84 08 get diff --git a/tests/0069_hash_set_with_parent/code2.log.ref b/tests/0069_hash_set_with_parent/code2.log.ref new file mode 100644 index 0000000..6e04b1f --- /dev/null +++ b/tests/0069_hash_set_with_parent/code2.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 17 61 "a" + 4 0x0000f int 81 0a 10 + 5 0x00011 prim 53 ) + 6 0x00012 prim 63 def + 2 7 0x00013 ref 39 62 61 72 /bar + 8 0x00017 prim 43 ( + 9 0x00018 str 17 78 "x" + 10 0x0001a int 81 14 20 + 11 0x0001c prim 53 ) + 12 0x0001d prim 63 def + 4 13 0x0001e word 38 66 6f 6f foo + 14 0x00022 word 38 62 61 72 bar + 15 0x00026 prim 83 35 setparent + 6 16 0x00028 xref 84 0a foo + 17 0x0002a str 17 78 "x" + 18 0x0002c int 81 1e 30 + 19 0x0002e prim 83 13 put + 9 20 0x00030 xref 84 12 foo + 21 0x00032 str 17 78 "x" + 22 0x00034 prim 83 12 get + 10 23 0x00036 xref 84 14 bar + 24 0x00038 str 17 78 "x" + 25 0x0003a prim 83 12 get diff --git a/tests/0069_hash_set_with_parent/main.gs b/tests/0069_hash_set_with_parent/main.gs new file mode 100644 index 0000000..e025792 --- /dev/null +++ b/tests/0069_hash_set_with_parent/main.gs @@ -0,0 +1,10 @@ +/foo ( "a" 10 ) def +/bar ( "x" 20 ) def + +foo bar setparent + +foo "x" 30 put + +# the same or different? +foo "x" get +bar "x" get diff --git a/tests/0069_hash_set_with_parent/mem.log.ref b/tests/0069_hash_set_with_parent/mem.log.ref new file mode 100644 index 0000000..6e9bbc9 --- /dev/null +++ b/tests/0069_hash_set_with_parent/mem.log.ref @@ -0,0 +1,781 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 20] + 11: 196.01, 0x001d6b7c[ 20] + 12: 192.01, 0x001d6b98[ 148] + 13: 200.01, 0x001d6c34[ 72] + 14: 0.00, 0x001d6c84[14848892] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> => #196.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 17 61 uQ..Bz.`9foo.(.a + 81 0a 18 29 38 64 65 66 39 62 61 72 18 28 17 78 ...)8def9bar.(.x + 81 14 18 29 38 64 65 66 38 66 6f 6f 38 62 61 72 ...)8def8foo8bar + 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 17 78 .setparent8foo.x + 81 1e 38 70 75 74 38 66 6f 6f 17 78 38 67 65 74 ..8put8foo.x8get + 38 62 61 72 17 78 38 67 65 74 8bar.x8get + #187.1.1.array + [ 0] #198.1.2.num.int <30 (0x1e)> + [ 1] #195.1.2.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 1, "a"> + 61 a + #191.1.1.num.int <10 (0xa)> + #192.1.1.hash + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 1, "a"> => #191.1.1.num.int <10 (0xa)> + #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> => #198.1.2.num.int <30 (0x1e)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1f, size 1, "x"> + 78 x + #195.1.2.num.int <20 (0x14)> + #196.1.2.hash + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1f, size 1, "x"> => #195.1.2.num.int <20 (0x14)> + #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + 78 x + #198.1.2.num.int <30 (0x1e)> + #200.1.1.array diff --git a/tests/0069_hash_set_with_parent/screen.log.ref b/tests/0069_hash_set_with_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0069_hash_set_with_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0069_hash_set_with_parent/trace.log.ref b/tests/0069_hash_set_with_parent/trace.log.ref new file mode 100644 index 0000000..de1b508 --- /dev/null +++ b/tests/0069_hash_set_with_parent/trace.log.ref @@ -0,0 +1,189 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1c, type 8, 29[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1e, type 7, 31[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x20, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x22, type 8, 35[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x24, type 8, 37[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #192.1.2.hash +IP: #186:0x30, type 8, 49[9] +GC: ++#196.1.2.hash +GC: --#196.1.3.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x3e, type 7, 63[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x40, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [2] #192.1.2.hash +IP: #186:0x42, type 8, 67[3] +GC: ++#197.1.1.mem.str.ro +GC: ++#198.1.1.num.int +GC: --#198.1.2.num.int +GC: --#197.1.2.mem.str.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x46, type 8, 71[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x4a, type 7, 75[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4b, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x4c, type 8, 77[3] +GC: ++#198.1.1.num.int +GC: --#199.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x50, type 8, 81[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x54, type 7, 85[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x55, size 1, "x"> + [1] #196.1.3.hash + [2] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x56, type 8, 87[3] +GC: ++#195.1.1.num.int +GC: --#201.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #198.1.2.num.int <30 (0x1e)> diff --git a/tests/0070_hash_del_with_parent/basic.log.ref b/tests/0070_hash_del_with_parent/basic.log.ref new file mode 100644 index 0000000..883b988 --- /dev/null +++ b/tests/0070_hash_del_with_parent/basic.log.ref @@ -0,0 +1,155 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <20 (0x14)> + [1] #xxxx.1.3.num.int <20 (0x14)> diff --git a/tests/0070_hash_del_with_parent/code.log.ref b/tests/0070_hash_del_with_parent/code.log.ref new file mode 100644 index 0000000..8f634f5 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 word 38 64 65 66 def + 4 13 0x00028 word 38 66 6f 6f foo + 14 0x0002c word 38 62 61 72 bar + 15 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x0003a word 38 66 6f 6f foo + 17 0x0003e str 17 78 "x" + 18 0x00040 word 68 64 65 6c 65 74 65 delete + 9 19 0x00047 word 38 66 6f 6f foo + 20 0x0004b str 17 78 "x" + 21 0x0004d word 38 67 65 74 get + 10 22 0x00051 word 38 62 61 72 bar + 23 0x00055 str 17 78 "x" + 24 0x00057 word 38 67 65 74 get diff --git a/tests/0070_hash_del_with_parent/code1.log.ref b/tests/0070_hash_del_with_parent/code1.log.ref new file mode 100644 index 0000000..2317c33 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code1.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 xref 84 10 def + 4 13 0x00026 word 38 66 6f 6f foo + 14 0x0002a word 38 62 61 72 bar + 15 0x0002e word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x00038 xref 84 12 foo + 17 0x0003a str 17 78 "x" + 18 0x0003c word 68 64 65 6c 65 74 65 delete + 9 19 0x00043 xref 84 1d foo + 20 0x00045 str 17 78 "x" + 21 0x00047 word 38 67 65 74 get + 10 22 0x0004b xref 84 21 bar + 23 0x0004d str 17 78 "x" + 24 0x0004f xref 84 08 get diff --git a/tests/0070_hash_del_with_parent/code2.log.ref b/tests/0070_hash_del_with_parent/code2.log.ref new file mode 100644 index 0000000..27daa40 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code2.log.ref @@ -0,0 +1,31 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 17 61 "a" + 4 0x0000f int 81 0a 10 + 5 0x00011 prim 53 ) + 6 0x00012 prim 63 def + 2 7 0x00013 ref 39 62 61 72 /bar + 8 0x00017 prim 43 ( + 9 0x00018 str 17 78 "x" + 10 0x0001a int 81 14 20 + 11 0x0001c prim 53 ) + 12 0x0001d prim 63 def + 4 13 0x0001e word 38 66 6f 6f foo + 14 0x00022 word 38 62 61 72 bar + 15 0x00026 prim 83 35 setparent + 6 16 0x00028 xref 84 0a foo + 17 0x0002a str 17 78 "x" + 18 0x0002c prim 83 14 delete + 9 19 0x0002e xref 84 10 foo + 20 0x00030 str 17 78 "x" + 21 0x00032 prim 83 12 get + 10 22 0x00034 xref 84 12 bar + 23 0x00036 str 17 78 "x" + 24 0x00038 prim 83 12 get diff --git a/tests/0070_hash_del_with_parent/main.gs b/tests/0070_hash_del_with_parent/main.gs new file mode 100644 index 0000000..87ee214 --- /dev/null +++ b/tests/0070_hash_del_with_parent/main.gs @@ -0,0 +1,10 @@ +/foo ( "a" 10 ) def +/bar ( "x" 20 ) def + +foo bar setparent + +foo "x" delete + +# 20 or nil? +foo "x" get +bar "x" get diff --git a/tests/0070_hash_del_with_parent/mem.log.ref b/tests/0070_hash_del_with_parent/mem.log.ref new file mode 100644 index 0000000..89e72de --- /dev/null +++ b/tests/0070_hash_del_with_parent/mem.log.ref @@ -0,0 +1,776 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 192.01, 0x001d6b60[ 20] + 11: 196.01, 0x001d6b7c[ 20] + 12: 198.01, 0x001d6b98[ 72] + 13: 0.00, 0x001d6be8[14849048] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> => #196.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 17 61 uQ..Bz.`9foo.(.a + 81 0a 18 29 38 64 65 66 39 62 61 72 18 28 17 78 ...)8def9bar.(.x + 81 14 18 29 38 64 65 66 38 66 6f 6f 38 62 61 72 ...)8def8foo8bar + 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 17 78 .setparent8foo.x + 68 64 65 6c 65 74 65 38 66 6f 6f 17 78 38 67 65 hdelete8foo.x8ge + 74 38 62 61 72 17 78 38 67 65 74 t8bar.x8get + #187.1.1.array + [ 0] #195.1.3.num.int <20 (0x14)> + [ 1] #195.1.3.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5b (0x5b) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "a"> + 61 a + #191.1.1.num.int <10 (0xa)> + #192.1.1.hash + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "a"> => #191.1.1.num.int <10 (0xa)> + #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + 78 x + #195.1.3.num.int <20 (0x14)> + #196.1.2.hash + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> => #195.1.3.num.int <20 (0x14)> + #198.1.1.array diff --git a/tests/0070_hash_del_with_parent/screen.log.ref b/tests/0070_hash_del_with_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0070_hash_del_with_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0070_hash_del_with_parent/trace.log.ref b/tests/0070_hash_del_with_parent/trace.log.ref new file mode 100644 index 0000000..0c59ef8 --- /dev/null +++ b/tests/0070_hash_del_with_parent/trace.log.ref @@ -0,0 +1,180 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1c, type 8, 29[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1e, type 7, 31[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x20, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x22, type 8, 35[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x24, type 8, 37[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #192.1.2.hash +IP: #186:0x30, type 8, 49[9] +GC: ++#196.1.2.hash +GC: --#196.1.3.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x3e, type 7, 63[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x40, type 8, 65[6] +GC: --#197.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x47, type 8, 72[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x4b, type 7, 76[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x4d, type 8, 78[3] +GC: ++#195.1.1.num.int +GC: --#199.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> +IP: #186:0x51, type 8, 82[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #195.1.2.num.int <20 (0x14)> +IP: #186:0x55, type 7, 86[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x56, size 1, "x"> + [1] #196.1.3.hash + [2] #195.1.2.num.int <20 (0x14)> +IP: #186:0x57, type 8, 88[3] +GC: ++#195.1.2.num.int +GC: --#200.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <20 (0x14)> + [1] #195.1.3.num.int <20 (0x14)> diff --git a/tests/test_script b/tests/test_script new file mode 100644 index 0000000..725a9c0 --- /dev/null +++ b/tests/test_script @@ -0,0 +1,26 @@ +log prompt 0 gc stack context ip +# --- trace --- +run +# --- trace_end --- +# --- mem --- +d mem +d * +# --- mem_end --- +# --- screen --- +d screen +# --- screen_end --- +p st +# --- cleanup --- +return +set stack 0 +set context 0 +set gstate 0 +set consolegstate 0 +set screen 0 +set dict 0 +d mem +d 0 +# --- cleanup_end --- +# --- gc --- +i 0 +# --- gc_end --- diff --git a/types.def b/types.def new file mode 100644 index 0000000..16b5697 --- /dev/null +++ b/types.def @@ -0,0 +1,39 @@ +# type definitions +# +# this file is used to generate vocabulary.h +# +# 1st column: printable name, 2nd column (optional): name used in source code + +# --- types < 16 --- +# these types can be encoded in binary program code +# number-like types +nil +int +bool +prim +xref +# string-like types start with t_comment +comm comment +code +str string +word +ref +get +set + res1 + res2 + res3 + res4 + +# --- types >= 16 --- + +# internal type used during code optimization +skip + +# context types +func ctx_func +block ctx_block +loop ctx_loop +repeat ctx_repeat +for ctx_for +forall ctx_forall diff --git a/vocabulary.def b/vocabulary.def new file mode 100644 index 0000000..e17eff5 --- /dev/null +++ b/vocabulary.def @@ -0,0 +1,95 @@ +# list of primitive words +# +# this file is used to generate vocabulary.h +# +# 1st column: printable name, 2nd column (optional): name used in source code + +{ code_start +} code_end +[ array_start +] array_end +( hash_start +) hash_end +def +ldef +gdef +if +ifelse +loop +repeat +for +forall +exit +return +string +get +put +delete +length +dup +pop +exch +rot +roll +over +index +exec +add +sub +mul +div +mod +neg +abs +min +max +and +or +xor +not +shl +shr +eq +ne +gt +ge +lt +le +cmp +getparent +setparent +getdict +setdict +freeze +getcolor +setcolor +getbgcolor +setbgcolor +getpos +setpos +getfont +setfont +newfont +getregion +setregion +canvas +getcanvas +setcanvas +getgstate +setgstate +gstate +getconsolegstate +setconsolegstate +show +dim +run +readfile +unpackimage +blt +debug +getpixel +putpixel +lineto +fillrect +utf8decode +utf8encode

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 literal 0 HcmV?d00001 diff --git a/doc/testing.adoc b/doc/testing.adoc new file mode 100644 index 0000000..cde0880 --- /dev/null +++ b/doc/testing.adoc @@ -0,0 +1,74 @@ +== Tests + +Individual tests are subdirectories in the `tests` directory. Each test has +a code snippet `main.gs` that is run using the debug script +`tests/test_script` and leaves the result in `test.log`. That log is then additionally post-processed into +other `+*.log+` files. `+*.log.ref+` are corresponding reference results. + +Run tests with `./run_tests`. Re-generate reference output with `./run_tests -r`. + +Each test runs a sample code snippet and compares the result in several ways with a stored reference. + +=== Test details + +Test results should be stable but for core language changes. Tests compare +results in varying degrees of detail (e.g. 'mem' - 'trace' - 'basic') to +make it easier to decide whether a change is to be expected or not. + +Basically every core language change will invalidate 'mem' results but leave +'basic' intact. 'trace' changes but not that often. + +'code1' and 'code2' are the same as 'code' but with code optimizations enabled. + +'opt1' and 'opt2' are the same level of detail as 'trace' but with code optimizations enabled. + +==== 1. code + +Check the compiled binary code (no optimizations). + +==== 2. mem + +Check a full execution log including binary data content and memory layout. + +==== 3. trace + +Check a full execution log including variable values and internal object ids. + +==== 4. basic + +Check a simplified execution log including variable values but no internal object ids. + +==== 5. code1 + +Check the compiled binary code (optimization with -O1). + +==== 6. opt1 + +Check a full execution log including variable values and internal object ids (like +'trace' but optimization with -O1). + +==== 7. code2 + +Check the compiled binary code (optimization with -O2). + +==== 8. opt2 + +Check a full execution log including variable values and internal object ids (like +'trace' but optimization with -O2). + +==== 9. gc + +Check the garbage collector. This test is a bit different. It does not +compare against a stored reference. After releasing all object references, +the test verifies that the memory is in the initial state again. + +==== 10. screen + +Check the final screen (the drawing frame buffer). This includes a +simplified graphical representation as well as a checksum over the frame +buffer content. + +=== 64 bit vs. 32 bit code + +Tests will succeeed for both 64 bit and 32 bit compiled variants. Except for +the `mem` tests as these tests are data structure size dependent. diff --git a/files/bar.fnt b/files/bar.fnt new file mode 100644 index 0000000000000000000000000000000000000000..d976cc0e9da9d07f6b56ab34528b056e9acc1be6 GIT binary patch literal 13122 zcmcI~2UJttw(i;~1OXEe0g(ivh@c39(u+h-B?rD_mGid1PL;)7rAPT5=!9GCt2Vww(f&HL27Kj7*Esy}@WN-lVrhav_iglrP{g==}m@KyL+*1)v@r0gNVa6i_;V9DsX)JfI8%1prS1ML=Ev zN`SHolmQh$Du9ZEQ~`w@QUg>DNFDUzp<{r`4QYVhoe%{uc0KcIkP*$M#G3q*E0qO>Tqfpj>8H>6J81GOv zfSiT01=O!7I{=rU>;a=1bqi2hQ4RofqZ|Qa807@O6v`Pe=20$yx{h)MWEA=~VBpYh zpqCTv4qzU%2cQa|JwY!K?FAV7(02fkM0*3W0{SlKRYm&%=5e$ypq@t407Vxa4|>m| z699Yxod~EV=r@3J4V?riZs>P_?1z32n2*sZfD(lM02t5EsQ^Tx(?D+|`Xhi7(CL7Z zh|U0%H|S5GHyND?;1qN=pr)a7KyMEEGl0LK^8oWJIvbWeHsddLc|XAaBQf0~A3_1%M?mm7rG+Q-zp|`3~T7m})>V!_)xkO-wCd zx?<`8pke9({0P$k7*8=Qz+hk+0V5651ek@GW2RjKEh1e+o7h|UZ`5SfykgKt?ptlY? z2dJ&sc|h*LE+ApVE`r`E>=Ni*#4ZDP1G@qMnr#&THnufD-NCjFdIi~j0m>e>4Zx6K z+XTJRY<~lWD%)>BKE-wcA{($>gvgd`JOFST=+4#ZzW?7ocGmtQ__-*mz8rcPNKrV6 zB{EEo-s7Y)6gP|kVW*hU;w5{&iUGB&1m+7#6%b|K6wEImOUcq)F6gIVl9z^{sP!Dc z?W+g8@jqrb;H<<7`N>h|7L@icX(+&VAJ7zTiN7a2UkiuEa5i`8HSPWi<43LM47Jg6 z87g}%cPE@Galw_zOjY}vGL~;VJ+SlFaE9B&&W#UVEqgPwe9S^|#e>&S^6<%XT7*N; zppiI*bCH<^WUq3%O$UoQYM9j7hI;Upyyk3)M~Td%F>BDJ4S1M5MZ b6&p-n}UNR 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 E2QnuI`Tzg` literal 0 HcmV?d00001 diff --git a/files/cd/boot/x86_64/efi b/files/cd/boot/x86_64/efi new file mode 100644 index 0000000000000000000000000000000000000000..14c9e5b2c3acf6b26fd7242ceb92fcf86886de21 GIT binary patch literal 3870720 zcmeI*!D}2<90%}U(-5W7HU$xTC_Y3FDlR0H9*Q8_&@2)+D(}4D`FgdLR_o1+DYxbN+QMS4CtmyM z(;Gj${`2UikMExN@rBr*|Low8#ozZ|**|^oVC~Cpk@BlQ7^QaF7z{@3jqOg_>=wOR zN*`@^+C?XI`$cDXsDEpFu(Pw9+WpPr$99IDqR5-Osn^*}qd^)CbI+A_x1VaYS~`Ag zdWq^Y39R3_|FCM$bg+X65FkK+009C72oQMA1kC@Rvmeam5+Fc;009C72oU%e0vDG* zs1|gpHXrfwC$}268k0IR9<|(v#dtS5u@xudbT@xCUN9K18B|+kEq0RdgJCoaJ z|9?(dp0=m@Cw3QFt+mHH%*W;%*Y+BFIX~c?T#v#fK!5-N0tEi20#9!5Pv`$k?%)4> z|Nk=|Xb^)K#r2&3bLL!}&DlRySWuM|RAmK~d46#D+}Tv+3`M;8cz#gT{CtVq=c9ZQ zDReR(OtXcmI!PKTn|btJG;_vK?(gSPB@7MoSz>&ivbEBzuijjkjQ`jCqEoY<-#ZoM zrS%Kd{A6jlkzU<=yVx7&8&&oDBfsQJC|gVQ56926Nb@fq%0F6}tGf%|P5Wv82T&e3Y I0}}%S0F=NFLjV8( literal 0 HcmV?d00001 diff --git a/files/cd/boot/x86_64/loader/linux b/files/cd/boot/x86_64/loader/linux new file mode 100644 index 0000000..e69de29 diff --git a/files/font1.psfu b/files/font1.psfu new file mode 100644 index 0000000000000000000000000000000000000000..c0459dd2fc24c264076339c993ce9f2d7cf3a6c0 GIT binary patch literal 3177 zcmYLKU2Ggz6}}Y7fHaEpIFhZTl<@!4p()M+iw)twK!HMmrWA%aOalzm6mSQ+U5``8 z-B1hlXJ->bX`G}<8Yi?gBtfK(vYIOmJdDz@`DQ#D3d#O?o zrAkRy6}7!!Rj6#2%Qj!YEln*bRrdDo^~&Vv*=yHkHB|pQ`kzYEG~kZsmF=pnMs|-l z&e+DPni!oJ9es4Isb=?;Z`~^In^oazJ8!RsO5L$-I3M12hd8L(c9l-3?Rm;mYGP^W z$$^0ZrG`gKzF(qcfoio{2vZh?md(g)f@qVna!cOIadX!ZLN%MsT;97pc)Nt4Gs!{n zDU^gZ-~@r=D609sUvPXs=Z_1g(hRJ&SWHse@e-v+r&{2t`e6fX6l*01TTRYr?#m^C0SWn zY0|PoL!C6Goaa?Mj|ydv<&{Zj`)r)wRx00rFgUoM6*q*tQOLBsVWl`A)TTPCOrXIX z7Gsx~*E~P)y)~saSi=1t)syu+zmc%c$=c>hONf%6B#B=tyt`tV;iSvKV8Jo!LAp9N zXo_&D>w+Q#hHBmc^QV;?`MOx9H5xTr42fan$&7uEcn=tc>yjhIvHCcofee{V&UT~n z|JH#8wR_9Js>n#Jx-RRpEZiV%ntoZ_kuBkLq?je&WwOjdsd4E~n_B+3Cq;17SWzEK zbqloWN`bf~8zxjnEd>(wwxlM6)Pt6lT4sNYX=8bZaK^pDmziT`;Zz*wUK6)yo4`by z^RhRpQy%E`w(s66GM=;BRLjz47zLKJ_S9QxqxTqn83nJ}Rtdf)%5@l9%Ylj@^7_mz%JYN%`vG)k!h(Hvnh}XW3cC|ZQ9HR zsPwJQGP5ZA{;*=f=z@o$LV}0YHN!@_(`@od=vWq?I!RY{duhKAOM4z$d^;nQzAm-~7@OOY4H`qOt|;f@<4_7$R)SLrmobv9-0?XSRfEfD%2< zW*2hwX zu0g2VJsGn_2gTOV(CuPNd>dhr+tM<=#3Ty!p&{c!!rCcprMh7VInt9c!V>6K7F#Ks zbkGCQGW13d`gU_hJ}LugAtMp8aYa)X#l#0)mq0!4=nC69jIi*Na5o}3~* zUW_zt;^WC6h)@r*u!ii|RpOh-W=|8(5Kj^3kcB6a9X&>TmN-k^A!10JC!Wt{FHmg( zS>sC9poODhc618abVS7k#8(iXhz)#`fQ5?k2@N@hEK7NT` z;W3Qi*LWPi!Ef<9jN=Ie_&xrBCsDyus3My=1pN&30`xiPlhCg~&q1GtJ_|h$eIEK% z=+~iNgT4Sg1${W1BJ&9J8R%)~OVC%KFG9Zw{V(Y2&<*I95T8VR3NhPv=q!>Kpie;m z4f-F@SE1j4ejf2W;;V?SGlb_5UqE~fF`IM(@p;5-eS`gJus03%sLnRmUqKd~AaVqv z29aHjI2IA*qNBvW5?>>|b!F`no=kt0_puRg;VIkF8-T0>~sXoP4n$>XhyXuXI< zu1;a`X~dUX3s{^&>kL}Q&^nh*kzk0mm$5jV)edJfl)RkPXsyPmj<6PQ@WlX*FpwDr lIKwjjlgk?7zf)*7d-gD5GHOg_@;YJ;ZtYK5V-E2g{s*5{Q#t?u literal 0 HcmV?d00001 diff --git a/files/font2.psfu b/files/font2.psfu new file mode 100644 index 0000000000000000000000000000000000000000..8f8b665e645f8a474cb8c3daf0309f36878cb53a GIT binary patch literal 2899 zcmYjSYit}>6~0tfh^kS^&yixKrG)ouAf+sHF|PupKzWw;V`{<>%8)DtmVpkNiQ{hV zBu(99H%ZeLwsF!DCr#QU&dW`+nk(fhaSwV|Q6HyVvo_tK8-xQ?y*ieJYiDl4;{%vHDCHj<6pc8iLZdRcENQg*Ro zb13;#inda=m01MkxS8vam3`UR=)v2l)S5MSduF2@E~T3zz}j6YvF zVKcCLRMbjr$7`vAUnqByvU2E^40`8^rzBfERbCNAj~kBDr^0;X!VKajPe&|@H&xhb zEwoypa!L+IUj>O(aFZOZBv8XeKgp~Os^9Ec!WZ0TFCq35o~MC;jPU$~mR%CNZzWfZ zh<{3Q$Un}-u-LIB-mtZ}xY!JoLk0aLQGL$~J+H5dUbETsimK;(p6B;eHo7I)GMeS+ zcFq3l-iS)fu|zR@9D&+k(M|fZ?D>K3EvqimGwNlkbv?@%sA?_WSbUvW@LR2xUoiGu z>ZAFj6AT+(&IQR*X;|Vsm+R#=M^k*P3028DT?kaxVqCNr(5~wSN=fwA z8Wl)^*a7Q7F6ZWeV{#*WV1>NbCD&#A9pRHE?G0O8=DP5G=BePj45>@LEE(@DxqjKB zzm6)I_$`$uV9AvPESpvFOQ}Q>KIuXz2**0+$Y<*I z0dH`1PxfVyzdfJX2FcT=Id70tqmeQL&8jz$Hz@l9-k_Y76MTz)XqfHpcB1cZGpJN3 zTQ`SN+ud!3+h&mQS}beIUo$Am#IWzLdkV)6A31V(EG+sXsv=4^d5O2l zXzyE=K@(m$c4p?x%viXZoKm}FHuHATSEaV&N+OA7$IlW|&-wk|Xl{Sw(R$i16)qS!JW*DJaVSl+!oz+gP*%bgtg zvdumNH#ics`|b9kdH-I~3S1`}4cHefJI8{bqt8wu>(p=F1@#*Y#60UR?-+sfmmAVw z${o`fL|zKq_#;Sp!;3${i$8+OFBGKuNBqTw8$9niTsG%&45Yw~{QuXb-n)F>^4!>W zlh#5fqCNBO>7PNyZ;E}8tXFIYD7Lp1p#n!FKR(-0euozf3!#rc7ap zzfAF*H|y*VT{rOk!0noK@+()bAf24R{65U@M|!Y|bZU~chx7z#7t#Yyk@k_ee_(<% zPKrpBIWR?;qom!`LYzECYEX~tpGR8d*(%RfdA>^7YMoRg&Ej7X?uZ*{6s6IQG#X2z zooO_lMvtXYHH{umqlq+{Oru?CbQ0;a%lHcJ!&h-XzLt*9;OqDX9>6#8 zEqoi_!FTaJJc#e(2lyd=gdgK4_$hvdpW_!Rjd8em2&4EVHse?D@M~UTVxi{Q_}}#5~rXC4Y{1 zh{W90WX^omnA6%x(yKhblQNe`m&qSY>xVg=<8)_QXO?SErgbW;;hrR%P5&9DJW#~ERSD~*!zXp93{{vg?WD@`Y literal 0 HcmV?d00001 diff --git a/files/foo.fnt b/files/foo.fnt new file mode 100644 index 0000000000000000000000000000000000000000..b04d62817ab6e2a391dd5dd591f348e9789471ff GIT binary patch literal 7116 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 U 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