about summary refs log tree commit diff
path: root/evoke.hex
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-10-06 17:43:31 -0700
committerIrene Knapp <ireneista@irenes.space>2026-10-06 21:43:29 -0700
commit2d9bed2e8e1b8fc3a08c3209d9528b52e3251812 (patch)
tree5204f9dc8584dab1a3bff08000c1ce2cf55bbd2b /evoke.hex
parentdcb2e0642c07a98447bfe4d0be06063f7df251fa (diff)
rework the interface to "enchant" to support different kinds of executables
so, in particular, "hex" now builds with the new syntax

to implement this, "enchant" now passes the full structure through to "output-contents", which makes it easier to extend.

additionally, when inscribing, the source of "evoke" needs to be included in the scope of the hex transform even when the program being compiled is something else, so that it can carefully interfere with the other transforms. this is now implemented, though in an inelegant way that could do with some cleanup. (that last sentence could be the slogan of the whole project :D)

Change-Id: I553afadba350a62d6e97a21df2b3e821685b9c0c
Force-Push: yes
Diffstat (limited to 'evoke.hex')
-rw-r--r--evoke.hex1085
1 files changed, 784 insertions, 301 deletions
diff --git a/evoke.hex b/evoke.hex
index b1357d2..ca99be6 100644
--- a/evoke.hex
+++ b/evoke.hex
@@ -49,8 +49,8 @@
   00 00 00 08 00 00 00 00           ~ *virtual address
   00 00 00 00 00 00 00 00           ~ physical address (ignored)
 
-  48 f9 0a 00 00 00 00 00           ~ *size in file
-  48 f9 0a 00 00 00 00 00           ~ *size in memory
+  70 05 0b 00 00 00 00 00           ~ *size in file
+  70 05 0b 00 00 00 00 00           ~ *size in memory
 
   00 00 00 00 00 00 00 00           ~ segment alignment
 
@@ -114671,37 +114671,49 @@
   66 69 6e 69 74 69 6f 6e 2d 74 6f 70 2d 6c 65 76
   65 6c 2d 66 69 6c 65 6e 61 6d 65 20 3b 0a
 
-  ~ ": compilation-definition-static-filenames 8 + ;"
+  ~ ": compilation-definition-executable-type 8 + ;"
+  3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
+  66 69 6e 69 74 69 6f 6e 2d 65 78 65 63 75 74 61
+  62 6c 65 2d 74 79 70 65 20 38 20 2b 20 3b 0a
+
+  ~ ": compilation-definition-static-filenames 2 8 * +"
+  ~ " ;"
   3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
   66 69 6e 69 74 69 6f 6e 2d 73 74 61 74 69 63 2d
-  66 69 6c 65 6e 61 6d 65 73 20 38 20 2b 20 3b 0a
+  66 69 6c 65 6e 61 6d 65 73 20 32 20 38 20 2a 20
+  2b 20 3b 0a
 
-  ~ ": compilation-definition-dynamic-filenames 2 8 *"
+  ~ ": compilation-definition-dynamic-filenames 3 8 *"
   ~ " + ;"
   3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
   66 69 6e 69 74 69 6f 6e 2d 64 79 6e 61 6d 69 63
-  2d 66 69 6c 65 6e 61 6d 65 73 20 32 20 38 20 2a
+  2d 66 69 6c 65 6e 61 6d 65 73 20 33 20 38 20 2a
   20 2b 20 3b 0a
 
-  ~ ": compilation-definition-boot-filenames 3 8 * +"
+  ~ ": compilation-definition-boot-filenames 4 8 * +"
   ~ " ;"
   3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
   66 69 6e 69 74 69 6f 6e 2d 62 6f 6f 74 2d 66 69
-  6c 65 6e 61 6d 65 73 20 33 20 38 20 2a 20 2b 20
+  6c 65 6e 61 6d 65 73 20 34 20 38 20 2a 20 2b 20
   3b 0a
 
-  ~ ": compilation-definition-compile-header 4 8 * +"
+  ~ ": compilation-definition-compile-header 5 8 * +"
   ~ " ;"
   3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
   66 69 6e 69 74 69 6f 6e 2d 63 6f 6d 70 69 6c 65
-  2d 68 65 61 64 65 72 20 34 20 38 20 2a 20 2b 20
+  2d 68 65 61 64 65 72 20 35 20 38 20 2a 20 2b 20
   3b 0a
 
-  ~ ": compilation-definition-compile-footer 5 8 * +"
+  ~ ": compilation-definition-compile-body 6 8 * + ;"
+  3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
+  66 69 6e 69 74 69 6f 6e 2d 63 6f 6d 70 69 6c 65
+  2d 62 6f 64 79 20 36 20 38 20 2a 20 2b 20 3b 0a
+
+  ~ ": compilation-definition-compile-footer 7 8 * +"
   ~ " ;"
   3a 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 65
   66 69 6e 69 74 69 6f 6e 2d 63 6f 6d 70 69 6c 65
-  2d 66 6f 6f 74 65 72 20 35 20 38 20 2a 20 2b 20
+  2d 66 6f 6f 74 65 72 20 37 20 38 20 2a 20 2b 20
   3b 0a
 
   ~ ": allocate-compilation-definition"
@@ -114709,13 +114721,95 @@
   6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
   6e 0a
 
-  ~ "  6 8 * allocate ;"
-  20 20 36 20 38 20 2a 20 61 6c 6c 6f 63 61 74 65
+  ~ "  8 8 * allocate ;"
+  20 20 38 20 38 20 2a 20 61 6c 6c 6f 63 61 74 65
   20 3b 0a
 
   ~ ""
   0a
 
+  ~ "s" :raw-executable" keyword"
+  73 22 20 3a 72 61 77 2d 65 78 65 63 75 74 61 62
+  6c 65 22 20 6b 65 79 77 6f 72 64 0a
+
+  ~ "s" :forth-executable" keyword"
+  73 22 20 3a 66 6f 72 74 68 2d 65 78 65 63 75 74
+  61 62 6c 65 22 20 6b 65 79 77 6f 72 64 0a
+
+  ~ ""
+  0a
+
+  ~ "~ (definition structure pointer --)"
+  7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20 73 74
+  72 75 63 74 75 72 65 20 70 6f 69 6e 74 65 72 20
+  2d 2d 29 0a
+
+  ~ ": zero-compilation-definition"
+  3a 20 7a 65 72 6f 2d 63 6f 6d 70 69 6c 61 74 69
+  6f 6e 2d 64 65 66 69 6e 69 74 69 6f 6e 0a
+
+  ~ "  dup compilation-definition-top-level-filename 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 74 6f 70
+  2d 6c 65 76 65 6c 2d 66 69 6c 65 6e 61 6d 65 20
+  30 20 73 77 61 70 20 21 0a
+
+  ~ "  dup compilation-definition-executable-type 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 65 78 65
+  63 75 74 61 62 6c 65 2d 74 79 70 65 20 30 20 73
+  77 61 70 20 21 0a
+
+  ~ "  dup compilation-definition-static-filenames 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 73 74 61
+  74 69 63 2d 66 69 6c 65 6e 61 6d 65 73 20 30 20
+  73 77 61 70 20 21 0a
+
+  ~ "  dup compilation-definition-dynamic-filenames 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 64 79 6e
+  61 6d 69 63 2d 66 69 6c 65 6e 61 6d 65 73 20 30
+  20 73 77 61 70 20 21 0a
+
+  ~ "  dup compilation-definition-boot-filenames 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 62 6f 6f
+  74 2d 66 69 6c 65 6e 61 6d 65 73 20 30 20 73 77
+  61 70 20 21 0a
+
+  ~ "  dup compilation-definition-compile-header 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 63 6f 6d
+  70 69 6c 65 2d 68 65 61 64 65 72 20 30 20 73 77
+  61 70 20 21 0a
+
+  ~ "  dup compilation-definition-compile-body 0 swap"
+  ~ " !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 63 6f 6d
+  70 69 6c 65 2d 62 6f 64 79 20 30 20 73 77 61 70
+  20 21 0a
+
+  ~ "  dup compilation-definition-compile-footer 0"
+  ~ " swap !"
+  20 20 64 75 70 20 63 6f 6d 70 69 6c 61 74 69 6f
+  6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 63 6f 6d
+  70 69 6c 65 2d 66 6f 6f 74 65 72 20 30 20 73 77
+  61 70 20 21 0a
+
+  ~ "  drop ;"
+  20 20 64 72 6f 70 20 3b 0a
+
+  ~ ""
+  0a
+
   ~ ""
   0a
 
@@ -114825,47 +114919,54 @@
   69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20 62 6f
   6f 74 20 73 6f 75 72 63 65 0a
 
-  ~ "~  filename list -- source to precompile, source"
-  ~ " to copy to log,"
+  ~ "~  filename list -- source to label transform,"
+  ~ " source to log-load transform,"
   7e 20 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
-  20 2d 2d 20 73 6f 75 72 63 65 20 74 6f 20 70 72
-  65 63 6f 6d 70 69 6c 65 2c 20 73 6f 75 72 63 65
-  20 74 6f 20 63 6f 70 79 20 74 6f 20 6c 6f 67 2c
-  0a
+  20 2d 2d 20 73 6f 75 72 63 65 20 74 6f 20 6c 61
+  62 65 6c 20 74 72 61 6e 73 66 6f 72 6d 2c 20 73
+  6f 75 72 63 65 20 74 6f 20 6c 6f 67 2d 6c 6f 61
+  64 20 74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "~  source to copy textually)"
-  7e 20 20 73 6f 75 72 63 65 20 74 6f 20 63 6f 70
-  79 20 74 65 78 74 75 61 6c 6c 79 29 0a
+  ~ "~  boot source)"
+  7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65 29 0a
 
   ~ ": read-inputs"
   3a 20 72 65 61 64 2d 69 6e 70 75 74 73 0a
 
-  ~ "  here @ dup"
-  20 20 68 65 72 65 20 40 20 64 75 70 0a
+  ~ "  2 pick {"
+  20 20 32 20 70 69 63 6b 20 7b 0a
 
-  ~ "  ~ (static source filename list, dynamic source"
-  ~ " filename list,"
-  20 20 7e 20 28 73 74 61 74 69 63 20 73 6f 75 72
+  ~ "    here @ dup"
+  20 20 20 20 68 65 72 65 20 40 20 64 75 70 0a
+
+  ~ "    ~ (static source filename list, dynamic"
+  ~ " source filename list,"
+  20 20 20 20 7e 20 28 73 74 61 74 69 63 20 73 6f
+  75 72 63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69
+  73 74 2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72
   63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
-  2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
+  2c 0a
 
-  ~ "  ~  boot source filename list, source to"
-  ~ " precompile, buffer point)"
-  20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 2c 20 62 75 66 66 65 72 20 70 6f 69
-  6e 74 29 0a
+  ~ "    ~  boot source filename list, source to"
+  ~ " label-transform, buffer point)"
+  20 20 20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72
+  63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
+  2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65
+  6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 20 62 75 66
+  66 65 72 20 70 6f 69 6e 74 29 0a
 
-  ~ "  4 pick read-inputs-from-filename-list"
-  20 20 34 20 70 69 63 6b 20 72 65 61 64 2d 69 6e
-  70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61
-  6d 65 2d 6c 69 73 74 0a
+  ~ "    4 pick read-inputs-from-filename-list"
+  20 20 20 20 34 20 70 69 63 6b 20 72 65 61 64 2d
+  69 6e 70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65
+  6e 61 6d 65 2d 6c 69 73 74 0a
 
-  ~ "  0 pack8 8 packalign here !"
-  20 20 30 20 70 61 63 6b 38 20 38 20 70 61 63 6b
-  61 6c 69 67 6e 20 68 65 72 65 20 21 0a
+  ~ "    0 pack8 8 packalign here !"
+  20 20 20 20 30 20 70 61 63 6b 38 20 38 20 70 61
+  63 6b 61 6c 69 67 6e 20 68 65 72 65 20 21 0a
+
+  ~ "  } { 0 } if-else"
+  20 20 7d 20 7b 20 30 20 7d 20 69 66 2d 65 6c 73
+  65 0a
 
   ~ "  ~ (static source filename list, dynamic source"
   ~ " filename list,"
@@ -114875,50 +114976,67 @@
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
 
   ~ "  ~  boot source filename list, source to"
-  ~ " precompile)"
+  ~ " label-transform)"
   20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 29 0a
+  73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65 6c 2d
+  74 72 61 6e 73 66 6f 72 6d 29 0a
 
   ~ ""
   0a
 
-  ~ "  here @ dup"
-  20 20 68 65 72 65 20 40 20 64 75 70 0a
+  ~ "  3 pick 3 pick || {"
+  20 20 33 20 70 69 63 6b 20 33 20 70 69 63 6b 20
+  7c 7c 20 7b 0a
 
-  ~ "  ~ (static source filename list, dynamic source"
-  ~ " filename list,"
-  20 20 7e 20 28 73 74 61 74 69 63 20 73 6f 75 72
+  ~ "    here @ dup"
+  20 20 20 20 68 65 72 65 20 40 20 64 75 70 0a
+
+  ~ "    ~ (static source filename list, dynamic"
+  ~ " source filename list,"
+  20 20 20 20 7e 20 28 73 74 61 74 69 63 20 73 6f
+  75 72 63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69
+  73 74 2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72
   63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
-  2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
+  2c 0a
 
-  ~ "  ~  boot source filename list, source to"
-  ~ " precompile, source to copy to log,"
-  20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 2c 20 73 6f 75 72 63 65 20 74 6f 20
-  63 6f 70 79 20 74 6f 20 6c 6f 67 2c 0a
+  ~ "    ~  boot source filename list, source to"
+  ~ " label-transform,"
+  20 20 20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72
+  63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
+  2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65
+  6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "  ~  buffer point)"
-  20 20 7e 20 20 62 75 66 66 65 72 20 70 6f 69 6e
+  ~ "    ~  source to log-load transform, buffer"
+  ~ " point)"
+  20 20 20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f
+  20 6c 6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66
+  6f 72 6d 2c 20 62 75 66 66 65 72 20 70 6f 69 6e
   74 29 0a
 
-  ~ "  5 pick read-inputs-from-filename-list"
-  20 20 35 20 70 69 63 6b 20 72 65 61 64 2d 69 6e
-  70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61
-  6d 65 2d 6c 69 73 74 0a
-
-  ~ "  4 pick read-inputs-from-filename-list"
-  20 20 34 20 70 69 63 6b 20 72 65 61 64 2d 69 6e
-  70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61
-  6d 65 2d 6c 69 73 74 0a
+  ~ "    5 pick dup { read-inputs-from-filename-list }"
+  ~ " { drop } if-else"
+  20 20 20 20 35 20 70 69 63 6b 20 64 75 70 20 7b
+  20 72 65 61 64 2d 69 6e 70 75 74 73 2d 66 72 6f
+  6d 2d 66 69 6c 65 6e 61 6d 65 2d 6c 69 73 74 20
+  7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d 65 6c
+  73 65 0a
+
+  ~ "    4 pick dup { read-inputs-from-filename-list }"
+  ~ " { drop } if-else"
+  20 20 20 20 34 20 70 69 63 6b 20 64 75 70 20 7b
+  20 72 65 61 64 2d 69 6e 70 75 74 73 2d 66 72 6f
+  6d 2d 66 69 6c 65 6e 61 6d 65 2d 6c 69 73 74 20
+  7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d 65 6c
+  73 65 0a
+
+  ~ "    0 pack8 8 packalign here !"
+  20 20 20 20 30 20 70 61 63 6b 38 20 38 20 70 61
+  63 6b 61 6c 69 67 6e 20 68 65 72 65 20 21 0a
 
-  ~ "  0 pack8 8 packalign here !"
-  20 20 30 20 70 61 63 6b 38 20 38 20 70 61 63 6b
-  61 6c 69 67 6e 20 68 65 72 65 20 21 0a
+  ~ "  } { 0 } if-else"
+  20 20 7d 20 7b 20 30 20 7d 20 69 66 2d 65 6c 73
+  65 0a
 
   ~ "  ~ (static source filename list, dynamic source"
   ~ " filename list,"
@@ -114928,47 +115046,60 @@
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
 
   ~ "  ~  boot source filename list, source to"
-  ~ " precompile, source to copy to log)"
+  ~ " label-transform,"
   20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 2c 20 73 6f 75 72 63 65 20 74 6f 20
-  63 6f 70 79 20 74 6f 20 6c 6f 67 29 0a
+  73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65 6c 2d
+  74 72 61 6e 73 66 6f 72 6d 2c 0a
+
+  ~ "  ~  source to log-load transform)"
+  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66 6f 72
+  6d 29 0a
 
   ~ ""
   0a
 
-  ~ "  here @ dup"
-  20 20 68 65 72 65 20 40 20 64 75 70 0a
-
-  ~ "  ~ (static source filename list, dynamic source"
-  ~ " filename list,"
-  20 20 7e 20 28 73 74 61 74 69 63 20 73 6f 75 72
-  63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
-  2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
+  ~ "  2 pick {"
+  20 20 32 20 70 69 63 6b 20 7b 0a
 
-  ~ "  ~  boot source filename list, source to"
-  ~ " precompile, source to copy to log,"
-  20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
-  20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 2c 20 73 6f 75 72 63 65 20 74 6f 20
-  63 6f 70 79 20 74 6f 20 6c 6f 67 2c 0a
+  ~ "    here @ dup"
+  20 20 20 20 68 65 72 65 20 40 20 64 75 70 0a
 
-  ~ "  ~  source to copy textually, buffer point)"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 63
-  6f 70 79 20 74 65 78 74 75 61 6c 6c 79 2c 20 62
-  75 66 66 65 72 20 70 6f 69 6e 74 29 0a
+  ~ "    ~ (static source filename list, dynamic"
+  ~ " source filename list,"
+  20 20 20 20 7e 20 28 73 74 61 74 69 63 20 73 6f
+  75 72 63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69
+  73 74 2c 20 64 79 6e 61 6d 69 63 20 73 6f 75 72
+  63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
+  2c 0a
 
-  ~ "  4 pick read-inputs-from-filename-list"
-  20 20 34 20 70 69 63 6b 20 72 65 61 64 2d 69 6e
-  70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61
-  6d 65 2d 6c 69 73 74 0a
+  ~ "    ~  boot source filename list, source to"
+  ~ " label-transform,"
+  20 20 20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72
+  63 65 20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74
+  2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65
+  6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
+
+  ~ "    ~  source to log-load transform, boot source,"
+  ~ " buffer point)"
+  20 20 20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f
+  20 6c 6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66
+  6f 72 6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65
+  2c 20 62 75 66 66 65 72 20 70 6f 69 6e 74 29 0a
+
+  ~ "    4 pick read-inputs-from-filename-list"
+  20 20 20 20 34 20 70 69 63 6b 20 72 65 61 64 2d
+  69 6e 70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65
+  6e 61 6d 65 2d 6c 69 73 74 0a
+
+  ~ "    0 pack8 8 packalign here !"
+  20 20 20 20 30 20 70 61 63 6b 38 20 38 20 70 61
+  63 6b 61 6c 69 67 6e 20 68 65 72 65 20 21 0a
 
-  ~ "  0 pack8 8 packalign here !"
-  20 20 30 20 70 61 63 6b 38 20 38 20 70 61 63 6b
-  61 6c 69 67 6e 20 68 65 72 65 20 21 0a
+  ~ "  } { 0 } if-else"
+  20 20 7d 20 7b 20 30 20 7d 20 69 66 2d 65 6c 73
+  65 0a
 
   ~ "  ~ (static source filename list, dynamic source"
   ~ " filename list,"
@@ -114978,16 +115109,16 @@
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 0a
 
   ~ "  ~  boot source filename list, source to"
-  ~ " precompile, source to copy to log,"
+  ~ " label-transform,"
   20 20 7e 20 20 62 6f 6f 74 20 73 6f 75 72 63 65
   20 66 69 6c 65 6e 61 6d 65 20 6c 69 73 74 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 70 72 65 63 6f 6d
-  70 69 6c 65 2c 20 73 6f 75 72 63 65 20 74 6f 20
-  63 6f 70 79 20 74 6f 20 6c 6f 67 2c 0a
+  73 6f 75 72 63 65 20 74 6f 20 6c 61 62 65 6c 2d
+  74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "  ~  source to copy textually)"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 63
-  6f 70 79 20 74 65 78 74 75 61 6c 6c 79 29 0a
+  ~ "  ~  source to log-load transform, boot source)"
+  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66 6f 72
+  6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65 29 0a
 
   ~ ""
   0a
@@ -115004,25 +115135,20 @@
   0a
 
   ~ "~ (output memory start, current output point,"
+  ~ " definition structure pointer,"
   7e 20 28 6f 75 74 70 75 74 20 6d 65 6d 6f 72 79
   20 73 74 61 72 74 2c 20 63 75 72 72 65 6e 74 20
-  6f 75 74 70 75 74 20 70 6f 69 6e 74 2c 0a
-
-  ~ "~  compile-header execution token, compile-footer"
-  ~ " execution token,"
-  7e 20 20 63 6f 6d 70 69 6c 65 2d 68 65 61 64 65
-  72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f 6b 65
-  6e 2c 20 63 6f 6d 70 69 6c 65 2d 66 6f 6f 74 65
-  72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f 6b 65
-  6e 2c 0a
-
-  ~ "~  source to precompile, source to copy to log,"
-  ~ " source to include textually"
-  7e 20 20 73 6f 75 72 63 65 20 74 6f 20 70 72 65
-  63 6f 6d 70 69 6c 65 2c 20 73 6f 75 72 63 65 20
-  74 6f 20 63 6f 70 79 20 74 6f 20 6c 6f 67 2c 20
-  73 6f 75 72 63 65 20 74 6f 20 69 6e 63 6c 75 64
-  65 20 74 65 78 74 75 61 6c 6c 79 0a
+  6f 75 74 70 75 74 20 70 6f 69 6e 74 2c 20 64 65
+  66 69 6e 69 74 69 6f 6e 20 73 74 72 75 63 74 75
+  72 65 20 70 6f 69 6e 74 65 72 2c 0a
+
+  ~ "~  source to label-transform, source to log-load"
+  ~ " transform, boot source"
+  7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62
+  65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 20 73 6f
+  75 72 63 65 20 74 6f 20 6c 6f 67 2d 6c 6f 61 64
+  20 74 72 61 6e 73 66 6f 72 6d 2c 20 62 6f 6f 74
+  20 73 6f 75 72 63 65 0a
 
   ~ "~  -- output memory start, current output point)"
   7e 20 20 2d 2d 20 6f 75 74 70 75 74 20 6d 65 6d
@@ -115034,192 +115160,420 @@
   3a 20 6f 75 74 70 75 74 2d 63 6f 6e 74 65 6e 74
   73 0a
 
-  ~ "  7 roll 7 roll"
-  20 20 37 20 72 6f 6c 6c 20 37 20 72 6f 6c 6c 0a
+  ~ "  6 roll 6 roll"
+  20 20 36 20 72 6f 6c 6c 20 36 20 72 6f 6c 6c 0a
 
-  ~ "  ~ (compile-header execution token,"
-  ~ " compile-footer execution token,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 68 65 61
-  64 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 20 63 6f 6d 70 69 6c 65 2d 66 6f 6f
-  74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 0a
+  ~ "  ~ (definition structure pointer, source to"
+  ~ " label-transform,"
+  20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
+  73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
+  72 2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62
+  65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "  ~  source to precompile, source to copy to log,"
-  ~ " source to include textually,"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 70
-  72 65 63 6f 6d 70 69 6c 65 2c 20 73 6f 75 72 63
-  65 20 74 6f 20 63 6f 70 79 20 74 6f 20 6c 6f 67
-  2c 20 73 6f 75 72 63 65 20 74 6f 20 69 6e 63 6c
-  75 64 65 20 74 65 78 74 75 61 6c 6c 79 2c 0a
+  ~ "  ~  source to log-load transform, boot source,"
+  ~ " output memory start,"
+  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66 6f 72
+  6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65 2c 20
+  6f 75 74 70 75 74 20 6d 65 6d 6f 72 79 20 73 74
+  61 72 74 2c 0a
 
-  ~ "  ~  output memory start, current output point)"
-  20 20 7e 20 20 6f 75 74 70 75 74 20 6d 65 6d 6f
-  72 79 20 73 74 61 72 74 2c 20 63 75 72 72 65 6e
-  74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74 29 0a
+  ~ "  ~  current output point)"
+  20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f 75 74
+  70 75 74 20 70 6f 69 6e 74 29 0a
 
   ~ ""
   0a
 
-  ~ "  ~ Invoke the provided header callback."
-  20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65 20 70
-  72 6f 76 69 64 65 64 20 68 65 61 64 65 72 20 63
-  61 6c 6c 62 61 63 6b 2e 0a
+  ~ "  ~ Switch based on the executable type."
+  20 20 7e 20 53 77 69 74 63 68 20 62 61 73 65 64
+  20 6f 6e 20 74 68 65 20 65 78 65 63 75 74 61 62
+  6c 65 20 74 79 70 65 2e 0a
 
-  ~ "  7 roll execute"
-  20 20 37 20 72 6f 6c 6c 20 65 78 65 63 75 74 65
-  0a
+  ~ "  5 pick compilation-definition-executable-type"
+  ~ " @"
+  20 20 35 20 70 69 63 6b 20 63 6f 6d 70 69 6c 61
+  74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d
+  65 78 65 63 75 74 61 62 6c 65 2d 74 79 70 65 20
+  40 0a
 
-  ~ "  ~ (compile-footer execution token, source to"
-  ~ " precompile,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 66 6f 6f
-  74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 20 73 6f 75 72 63 65 20 74 6f 20 70
-  72 65 63 6f 6d 70 69 6c 65 2c 0a
+  ~ "  ~ (definition structure pointer, source to"
+  ~ " label-transform,"
+  20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
+  73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
+  72 2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62
+  65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "  ~  source to copy to log, source to include"
-  ~ " textually, output memory start,"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 63
-  6f 70 79 20 74 6f 20 6c 6f 67 2c 20 73 6f 75 72
-  63 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 65
-  78 74 75 61 6c 6c 79 2c 20 6f 75 74 70 75 74 20
-  6d 65 6d 6f 72 79 20 73 74 61 72 74 2c 0a
+  ~ "  ~  source to log-load transform, boot source,"
+  ~ " output memory start,"
+  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66 6f 72
+  6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65 2c 20
+  6f 75 74 70 75 74 20 6d 65 6d 6f 72 79 20 73 74
+  61 72 74 2c 0a
 
-  ~ "  ~  current output point)"
+  ~ "  ~  current output point, executable type)"
   20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f 75 74
-  70 75 74 20 70 6f 69 6e 74 29 0a
+  70 75 74 20 70 6f 69 6e 74 2c 20 65 78 65 63 75
+  74 61 62 6c 65 20 74 79 70 65 29 0a
 
   ~ ""
   0a
 
-  ~ "  elf-file-header"
-  20 20 65 6c 66 2d 66 69 6c 65 2d 68 65 61 64 65
-  72 0a
+  ~ "  dup :raw-executable = {"
+  20 20 64 75 70 20 3a 72 61 77 2d 65 78 65 63 75
+  74 61 62 6c 65 20 3d 20 7b 0a
 
-  ~ "  elf-program-header"
-  20 20 65 6c 66 2d 70 72 6f 67 72 61 6d 2d 68 65
-  61 64 65 72 0a
+  ~ "    drop 3roll drop 3roll drop 3roll drop"
+  20 20 20 20 64 72 6f 70 20 33 72 6f 6c 6c 20 64
+  72 6f 70 20 33 72 6f 6c 6c 20 64 72 6f 70 20 33
+  72 6f 6c 6c 20 64 72 6f 70 0a
+
+  ~ "  ~ (definition structure pointer, output memory"
+  ~ " start, current output point)"
+  20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
+  73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
+  72 2c 20 6f 75 74 70 75 74 20 6d 65 6d 6f 72 79
+  20 73 74 61 72 74 2c 20 63 75 72 72 65 6e 74 20
+  6f 75 74 70 75 74 20 70 6f 69 6e 74 29 0a
 
   ~ ""
   0a
 
-  ~ "  output-cold-start"
-  20 20 6f 75 74 70 75 74 2d 63 6f 6c 64 2d 73 74
-  61 72 74 0a
+  ~ "    ~ Invoke the provided header callback, if"
+  ~ " it's nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 68 65 61 64 65 72
+  20 63 61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74
+  27 73 20 6e 6f 6e 7a 65 72 6f 2e 0a
+
+  ~ "    2 pick compilation-definition-compile-header"
+  ~ " @"
+  20 20 20 20 32 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 68 65 61 64 65 72
+  20 40 0a
+
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
 
   ~ ""
   0a
 
-  ~ "  ~ Warm start and the log-loaded source."
-  20 20 7e 20 57 61 72 6d 20 73 74 61 72 74 20 61
-  6e 64 20 74 68 65 20 6c 6f 67 2d 6c 6f 61 64 65
-  64 20 73 6f 75 72 63 65 2e 0a
+  ~ "    ~ Invoke the provided body callback, if it's"
+  ~ " nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 62 6f 64 79 20 63
+  61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74 27 73
+  20 6e 6f 6e 7a 65 72 6f 2e 0a
 
-  ~ "  output-warm-start-header"
-  20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d 73 74
-  61 72 74 2d 68 65 61 64 65 72 0a
+  ~ "    2 pick compilation-definition-compile-body @"
+  20 20 20 20 32 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 62 6f 64 79 20 40
+  0a
 
-  ~ "  4 roll log-load-transform"
-  20 20 34 20 72 6f 6c 6c 20 6c 6f 67 2d 6c 6f 61
-  64 2d 74 72 61 6e 73 66 6f 72 6d 0a
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
 
-  ~ "  ~ (compile-footer execution token, source to"
-  ~ " precompile,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 66 6f 6f
-  74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 20 73 6f 75 72 63 65 20 74 6f 20 70
-  72 65 63 6f 6d 70 69 6c 65 2c 0a
+  ~ ""
+  0a
 
-  ~ "  ~  source to include textually, output memory"
-  ~ " start, current output point)"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 69
-  6e 63 6c 75 64 65 20 74 65 78 74 75 61 6c 6c 79
+  ~ "    ~ Invoke the provided footer callback, if"
+  ~ " it's nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 66 6f 6f 74 65 72
+  20 63 61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74
+  27 73 20 6e 6f 6e 7a 65 72 6f 2e 0a
+
+  ~ "    2 pick compilation-definition-compile-footer"
+  ~ " @"
+  20 20 20 20 32 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72
+  20 40 0a
+
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
+
+  ~ ""
+  0a
+
+  ~ "    3roll drop"
+  20 20 20 20 33 72 6f 6c 6c 20 64 72 6f 70 0a
+
+  ~ ""
+  0a
+
+  ~ "    ~ (output memory start, current output"
+  ~ " point)"
+  20 20 20 20 7e 20 28 6f 75 74 70 75 74 20 6d 65
+  6d 6f 72 79 20 73 74 61 72 74 2c 20 63 75 72 72
+  65 6e 74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74
+  29 0a
+
+  ~ "    exit"
+  20 20 20 20 65 78 69 74 0a
+
+  ~ "  } if"
+  20 20 7d 20 69 66 0a
+
+  ~ ""
+  0a
+
+  ~ "  dup :forth-executable = {"
+  20 20 64 75 70 20 3a 66 6f 72 74 68 2d 65 78 65
+  63 75 74 61 62 6c 65 20 3d 20 7b 0a
+
+  ~ "    drop"
+  20 20 20 20 64 72 6f 70 0a
+
+  ~ "    ~ (definition structure pointer, source to"
+  ~ " label-transform,"
+  20 20 20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f
+  6e 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e
+  74 65 72 2c 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  61 62 65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
+
+  ~ "    ~  source to log-load transform, boot source,"
+  ~ " output memory start,"
+  20 20 20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f
+  20 6c 6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66
+  6f 72 6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65
   2c 20 6f 75 74 70 75 74 20 6d 65 6d 6f 72 79 20
-  73 74 61 72 74 2c 20 63 75 72 72 65 6e 74 20 6f
+  73 74 61 72 74 2c 0a
+
+  ~ "    ~  current output point)"
+  20 20 20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f
   75 74 70 75 74 20 70 6f 69 6e 74 29 0a
 
-  ~ "  output-warm-start-post-log-load-transform"
-  20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d 73 74
-  61 72 74 2d 70 6f 73 74 2d 6c 6f 67 2d 6c 6f 61
-  64 2d 74 72 61 6e 73 66 6f 72 6d 0a
+  ~ ""
+  0a
 
-  ~ "  output-warm-start-attach-boot-source"
-  20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d 73 74
-  61 72 74 2d 61 74 74 61 63 68 2d 62 6f 6f 74 2d
-  73 6f 75 72 63 65 0a
+  ~ "    ~ Invoke the provided header callback, if"
+  ~ " it's nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 68 65 61 64 65 72
+  20 63 61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74
+  27 73 20 6e 6f 6e 7a 65 72 6f 2e 0a
 
-  ~ "  output-warm-start-footer"
-  20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d 73 74
-  61 72 74 2d 66 6f 6f 74 65 72 0a
+  ~ "    5 pick compilation-definition-compile-header"
+  ~ " @"
+  20 20 20 20 35 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 68 65 61 64 65 72
+  20 40 0a
+
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
 
   ~ ""
   0a
 
-  ~ "  ~ The label-transformed source."
-  20 20 7e 20 54 68 65 20 6c 61 62 65 6c 2d 74 72
-  61 6e 73 66 6f 72 6d 65 64 20 73 6f 75 72 63 65
-  2e 0a
+  ~ "    elf-file-header"
+  20 20 20 20 65 6c 66 2d 66 69 6c 65 2d 68 65 61
+  64 65 72 0a
 
-  ~ "  4 roll label-transform"
-  20 20 34 20 72 6f 6c 6c 20 6c 61 62 65 6c 2d 74
-  72 61 6e 73 66 6f 72 6d 0a
+  ~ "    elf-program-header"
+  20 20 20 20 65 6c 66 2d 70 72 6f 67 72 61 6d 2d
+  68 65 61 64 65 72 0a
 
-  ~ "  ~ (compile-footer execution token, source to"
-  ~ " include textually,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 66 6f 6f
-  74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 20 73 6f 75 72 63 65 20 74 6f 20 69
-  6e 63 6c 75 64 65 20 74 65 78 74 75 61 6c 6c 79
-  2c 0a
+  ~ ""
+  0a
 
-  ~ "  ~  output memory start, current output point,"
-  ~ " final entry pointer)"
-  20 20 7e 20 20 6f 75 74 70 75 74 20 6d 65 6d 6f
-  72 79 20 73 74 61 72 74 2c 20 63 75 72 72 65 6e
-  74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74 2c 20
-  66 69 6e 61 6c 20 65 6e 74 72 79 20 70 6f 69 6e
-  74 65 72 29 0a
+  ~ "    output-cold-start"
+  20 20 20 20 6f 75 74 70 75 74 2d 63 6f 6c 64 2d
+  73 74 61 72 74 0a
+
+  ~ ""
+  0a
+
+  ~ "    ~ Warm start and the log-loaded source."
+  20 20 20 20 7e 20 57 61 72 6d 20 73 74 61 72 74
+  20 61 6e 64 20 74 68 65 20 6c 6f 67 2d 6c 6f 61
+  64 65 64 20 73 6f 75 72 63 65 2e 0a
+
+  ~ "    output-warm-start-header"
+  20 20 20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d
+  73 74 61 72 74 2d 68 65 61 64 65 72 0a
+
+  ~ "    4 roll log-load-transform"
+  20 20 20 20 34 20 72 6f 6c 6c 20 6c 6f 67 2d 6c
+  6f 61 64 2d 74 72 61 6e 73 66 6f 72 6d 0a
+
+  ~ "    ~ (definition structure pointer, source to"
+  ~ " label-transform, boot source,"
+  20 20 20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f
+  6e 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e
+  74 65 72 2c 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  61 62 65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 20
+  62 6f 6f 74 20 73 6f 75 72 63 65 2c 0a
+
+  ~ "    ~  output memory start, current output"
+  ~ " point)"
+  20 20 20 20 7e 20 20 6f 75 74 70 75 74 20 6d 65
+  6d 6f 72 79 20 73 74 61 72 74 2c 20 63 75 72 72
+  65 6e 74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74
+  29 0a
+
+  ~ "    output-warm-start-post-log-load-transform"
+  20 20 20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d
+  73 74 61 72 74 2d 70 6f 73 74 2d 6c 6f 67 2d 6c
+  6f 61 64 2d 74 72 61 6e 73 66 6f 72 6d 0a
+
+  ~ "    output-warm-start-attach-boot-source"
+  20 20 20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d
+  73 74 61 72 74 2d 61 74 74 61 63 68 2d 62 6f 6f
+  74 2d 73 6f 75 72 63 65 0a
+
+  ~ "    output-warm-start-footer"
+  20 20 20 20 6f 75 74 70 75 74 2d 77 61 72 6d 2d
+  73 74 61 72 74 2d 66 6f 6f 74 65 72 0a
 
   ~ ""
   0a
 
-  ~ "  ~ The boot source."
-  20 20 7e 20 54 68 65 20 62 6f 6f 74 20 73 6f 75
-  72 63 65 2e 0a
+  ~ "    ~ The label-transformed source."
+  20 20 20 20 7e 20 54 68 65 20 6c 61 62 65 6c 2d
+  74 72 61 6e 73 66 6f 72 6d 65 64 20 73 6f 75 72
+  63 65 2e 0a
+
+  ~ "    4 roll label-transform"
+  20 20 20 20 34 20 72 6f 6c 6c 20 6c 61 62 65 6c
+  2d 74 72 61 6e 73 66 6f 72 6d 0a
+
+  ~ "    ~ (definition structure pointer, boot source,"
+  ~ " output memory start,"
+  20 20 20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f
+  6e 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e
+  74 65 72 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65
+  2c 20 6f 75 74 70 75 74 20 6d 65 6d 6f 72 79 20
+  73 74 61 72 74 2c 0a
 
-  ~ "  4 roll output-boot-source"
-  20 20 34 20 72 6f 6c 6c 20 6f 75 74 70 75 74 2d
-  62 6f 6f 74 2d 73 6f 75 72 63 65 0a
+  ~ "    ~  current output point, final entry"
+  ~ " pointer)"
+  20 20 20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f
+  75 74 70 75 74 20 70 6f 69 6e 74 2c 20 66 69 6e
+  61 6c 20 65 6e 74 72 79 20 70 6f 69 6e 74 65 72
+  29 0a
 
-  ~ "  ~ (compile-footer execution token, output"
+  ~ ""
+  0a
+
+  ~ "    3unroll"
+  20 20 20 20 33 75 6e 72 6f 6c 6c 0a
+
+  ~ ""
+  0a
+
+  ~ "    ~ Invoke the provided body callback, if it's"
+  ~ " nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 62 6f 64 79 20 63
+  61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74 27 73
+  20 6e 6f 6e 7a 65 72 6f 2e 0a
+
+  ~ "    4 pick compilation-definition-compile-body @"
+  20 20 20 20 34 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 62 6f 64 79 20 40
+  0a
+
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
+
+  ~ ""
+  0a
+
+  ~ "    3roll"
+  20 20 20 20 33 72 6f 6c 6c 0a
+
+  ~ ""
+  0a
+
+  ~ "    ~ The boot source."
+  20 20 20 20 7e 20 54 68 65 20 62 6f 6f 74 20 73
+  6f 75 72 63 65 2e 0a
+
+  ~ "    4 roll output-boot-source"
+  20 20 20 20 34 20 72 6f 6c 6c 20 6f 75 74 70 75
+  74 2d 62 6f 6f 74 2d 73 6f 75 72 63 65 0a
+
+  ~ "    ~ (definition structure pointer, output"
   ~ " memory start,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 66 6f 6f
-  74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 6f
-  6b 65 6e 2c 20 6f 75 74 70 75 74 20 6d 65 6d 6f
+  20 20 20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f
+  6e 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e
+  74 65 72 2c 20 6f 75 74 70 75 74 20 6d 65 6d 6f
   72 79 20 73 74 61 72 74 2c 0a
 
-  ~ "  ~  current output point)"
-  20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f 75 74
-  70 75 74 20 70 6f 69 6e 74 29 0a
+  ~ "    ~  current output point)"
+  20 20 20 20 7e 20 20 63 75 72 72 65 6e 74 20 6f
+  75 74 70 75 74 20 70 6f 69 6e 74 29 0a
 
   ~ ""
   0a
 
-  ~ "  ~ Invoke the provided footer callback."
-  20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65 20 70
-  72 6f 76 69 64 65 64 20 66 6f 6f 74 65 72 20 63
-  61 6c 6c 62 61 63 6b 2e 0a
+  ~ "    ~ Invoke the provided footer callback, if"
+  ~ " it's nonzero."
+  20 20 20 20 7e 20 49 6e 76 6f 6b 65 20 74 68 65
+  20 70 72 6f 76 69 64 65 64 20 66 6f 6f 74 65 72
+  20 63 61 6c 6c 62 61 63 6b 2c 20 69 66 20 69 74
+  27 73 20 6e 6f 6e 7a 65 72 6f 2e 0a
 
-  ~ "  3roll execute"
-  20 20 33 72 6f 6c 6c 20 65 78 65 63 75 74 65 0a
+  ~ "    2 pick compilation-definition-compile-footer"
+  ~ " @"
+  20 20 20 20 32 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 63 6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72
+  20 40 0a
 
-  ~ "  ~ (output memory start, current output point)"
-  20 20 7e 20 28 6f 75 74 70 75 74 20 6d 65 6d 6f
-  72 79 20 73 74 61 72 74 2c 20 63 75 72 72 65 6e
-  74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74 29 0a
+  ~ "    dup { execute } { drop } if-else"
+  20 20 20 20 64 75 70 20 7b 20 65 78 65 63 75 74
+  65 20 7d 20 7b 20 64 72 6f 70 20 7d 20 69 66 2d
+  65 6c 73 65 0a
 
-  ~ "  ;"
-  20 20 3b 0a
+  ~ ""
+  0a
+
+  ~ "    3roll drop"
+  20 20 20 20 33 72 6f 6c 6c 20 64 72 6f 70 0a
+
+  ~ ""
+  0a
+
+  ~ "    ~ (output memory start, current output"
+  ~ " point)"
+  20 20 20 20 7e 20 28 6f 75 74 70 75 74 20 6d 65
+  6d 6f 72 79 20 73 74 61 72 74 2c 20 63 75 72 72
+  65 6e 74 20 6f 75 74 70 75 74 20 70 6f 69 6e 74
+  29 0a
+
+  ~ "    exit"
+  20 20 20 20 65 78 69 74 0a
+
+  ~ "  } if"
+  20 20 7d 20 69 66 0a
+
+  ~ ""
+  0a
+
+  ~ "  ." Invalid executable type in compilation"
+  ~ " definition." 1 sys-exit ;"
+  20 20 2e 22 20 49 6e 76 61 6c 69 64 20 65 78 65
+  63 75 74 61 62 6c 65 20 74 79 70 65 20 69 6e 20
+  63 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 65 66 69
+  6e 69 74 69 6f 6e 2e 22 20 31 20 73 79 73 2d 65
+  78 69 74 20 3b 0a
 
   ~ ""
   0a
@@ -115259,6 +115613,22 @@
   3a 20 65 6e 63 68 61 6e 74 2d 66 72 6f 6d 2d 64
   65 66 69 6e 69 74 69 6f 6e 0a
 
+  ~ "  ~   We do this work here, rather than inside"
+  ~ " output-contents, because it"
+  20 20 7e 20 20 20 57 65 20 64 6f 20 74 68 69 73
+  20 77 6f 72 6b 20 68 65 72 65 2c 20 72 61 74 68
+  65 72 20 74 68 61 6e 20 69 6e 73 69 64 65 20 6f
+  75 74 70 75 74 2d 63 6f 6e 74 65 6e 74 73 2c 20
+  62 65 63 61 75 73 65 20 69 74 0a
+
+  ~ "  ~ would be wasteful to do it in every iteration"
+  ~ " of the label-loop."
+  20 20 7e 20 77 6f 75 6c 64 20 62 65 20 77 61 73
+  74 65 66 75 6c 20 74 6f 20 64 6f 20 69 74 20 69
+  6e 20 65 76 65 72 79 20 69 74 65 72 61 74 69 6f
+  6e 20 6f 66 20 74 68 65 20 6c 61 62 65 6c 2d 6c
+  6f 6f 70 2e 0a
+
   ~ "  dup dup dup"
   20 20 64 75 70 20 64 75 70 20 64 75 70 0a
 
@@ -115287,18 +115657,16 @@
   20 20 72 65 61 64 2d 69 6e 70 75 74 73 0a
 
   ~ "  ~ (definition structure pointer, source to"
-  ~ " precompile,"
+  ~ " label-transform,"
   20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
   73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
-  72 2c 20 73 6f 75 72 63 65 20 74 6f 20 70 72 65
-  63 6f 6d 70 69 6c 65 2c 0a
+  72 2c 20 73 6f 75 72 63 65 20 74 6f 20 6c 61 62
+  65 6c 2d 74 72 61 6e 73 66 6f 72 6d 2c 0a
 
-  ~ "  ~  source to copy to log, source to copy"
-  ~ " textually)"
-  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 63
-  6f 70 79 20 74 6f 20 6c 6f 67 2c 20 73 6f 75 72
-  63 65 20 74 6f 20 63 6f 70 79 20 74 65 78 74 75
-  61 6c 6c 79 29 0a
+  ~ "  ~  source to log-load transform, boot source)"
+  20 20 7e 20 20 73 6f 75 72 63 65 20 74 6f 20 6c
+  6f 67 2d 6c 6f 61 64 20 74 72 61 6e 73 66 6f 72
+  6d 2c 20 62 6f 6f 74 20 73 6f 75 72 63 65 29 0a
 
   ~ ""
   0a
@@ -115330,19 +115698,9 @@
   ~ "  docol ,"
   20 20 64 6f 63 6f 6c 20 2c 0a
 
-  ~ "  4 pick compilation-definition-compile-header @"
-  ~ " literal"
-  20 20 34 20 70 69 63 6b 20 63 6f 6d 70 69 6c 61
-  74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d
-  63 6f 6d 70 69 6c 65 2d 68 65 61 64 65 72 20 40
-  20 6c 69 74 65 72 61 6c 0a
-
-  ~ "  4 pick compilation-definition-compile-footer @"
-  ~ " literal"
-  20 20 34 20 70 69 63 6b 20 63 6f 6d 70 69 6c 61
-  74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f 6e 2d
-  63 6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72 20 40
-  20 6c 69 74 65 72 61 6c 0a
+  ~ "  5 roll literal"
+  20 20 35 20 72 6f 6c 6c 20 6c 69 74 65 72 61 6c
+  0a
 
   ~ "  4 roll literal"
   20 20 34 20 72 6f 6c 6c 20 6c 69 74 65 72 61 6c
@@ -115546,6 +115904,32 @@
   3a 20 69 6e 73 63 72 69 62 65 2d 66 72 6f 6d 2d
   64 65 66 69 6e 69 74 69 6f 6e 0a
 
+  ~ "  ~   If we're inscribing something other than"
+  ~ " "evoke", we need to load"
+  20 20 7e 20 20 20 49 66 20 77 65 27 72 65 20 69
+  6e 73 63 72 69 62 69 6e 67 20 73 6f 6d 65 74 68
+  69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 22
+  65 76 6f 6b 65 22 2c 20 77 65 20 6e 65 65 64 20
+  74 6f 20 6c 6f 61 64 0a
+
+  ~ "  ~ evoke's source also, first."
+  20 20 7e 20 65 76 6f 6b 65 27 73 20 73 6f 75 72
+  63 65 20 61 6c 73 6f 2c 20 66 69 72 73 74 2e 0a
+
+  ~ "  s" evoke-executable-data" find dup {"
+  ~ " entry-to-execution-token execute } if"
+  20 20 73 22 20 65 76 6f 6b 65 2d 65 78 65 63 75
+  74 61 62 6c 65 2d 64 61 74 61 22 20 66 69 6e 64
+  20 64 75 70 20 7b 20 65 6e 74 72 79 2d 74 6f 2d
+  65 78 65 63 75 74 69 6f 6e 2d 74 6f 6b 65 6e 20
+  65 78 65 63 75 74 65 20 7d 20 69 66 0a
+
+  ~ "  swap"
+  20 20 73 77 61 70 0a
+
+  ~ ""
+  0a
+
   ~ "  ~   We begin by constructing the full text of"
   ~ " all the source that will be"
   20 20 7e 20 20 20 57 65 20 62 65 67 69 6e 20 62
@@ -115593,21 +115977,48 @@
   ~ "  here @ dup"
   20 20 68 65 72 65 20 40 20 64 75 70 0a
 
-  ~ "  ~ (definition structure pointer,"
-  ~ " hex-transformed source pointer,"
-  20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
-  73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
-  72 2c 20 68 65 78 2d 74 72 61 6e 73 66 6f 72 6d
-  65 64 20 73 6f 75 72 63 65 20 70 6f 69 6e 74 65
-  72 2c 0a
+  ~ "  ~ (parent definition structure pointer,"
+  ~ " definition structure pointer,"
+  20 20 7e 20 28 70 61 72 65 6e 74 20 64 65 66 69
+  6e 69 74 69 6f 6e 20 73 74 72 75 63 74 75 72 65
+  20 70 6f 69 6e 74 65 72 2c 20 64 65 66 69 6e 69
+  74 69 6f 6e 20 73 74 72 75 63 74 75 72 65 20 70
+  6f 69 6e 74 65 72 2c 0a
 
-  ~ "  ~  output point)"
-  20 20 7e 20 20 6f 75 74 70 75 74 20 70 6f 69 6e
+  ~ "  ~  hex-transformed source pointer, output"
+  ~ " point)"
+  20 20 7e 20 20 68 65 78 2d 74 72 61 6e 73 66 6f
+  72 6d 65 64 20 73 6f 75 72 63 65 20 70 6f 69 6e
+  74 65 72 2c 20 6f 75 74 70 75 74 20 70 6f 69 6e
   74 29 0a
 
   ~ ""
   0a
 
+  ~ "  3 pick 3 pick != {"
+  20 20 33 20 70 69 63 6b 20 33 20 70 69 63 6b 20
+  21 3d 20 7b 0a
+
+  ~ "    3 pick"
+  ~ " compilation-definition-static-filenames @"
+  20 20 20 20 33 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 73 74 61 74 69 63 2d 66 69 6c 65 6e 61 6d
+  65 73 20 40 0a
+
+  ~ "    dup { read-inputs-from-filename-list } { drop"
+  ~ " } if-else"
+  20 20 20 20 64 75 70 20 7b 20 72 65 61 64 2d 69
+  6e 70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e
+  61 6d 65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f
+  70 20 7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ "  } if"
+  20 20 7d 20 69 66 0a
+
+  ~ ""
+  0a
+
   ~ "  2 pick compilation-definition-static-filenames"
   ~ " @"
   20 20 32 20 70 69 63 6b 20 63 6f 6d 70 69 6c 61
@@ -115615,11 +116026,37 @@
   73 74 61 74 69 63 2d 66 69 6c 65 6e 61 6d 65 73
   20 40 0a
 
-  ~ "  read-inputs-from-filename-list"
-  20 20 72 65 61 64 2d 69 6e 70 75 74 73 2d 66 72
-  6f 6d 2d 66 69 6c 65 6e 61 6d 65 2d 6c 69 73 74
+  ~ "  dup { read-inputs-from-filename-list } { drop }"
+  ~ " if-else"
+  20 20 64 75 70 20 7b 20 72 65 61 64 2d 69 6e 70
+  75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61 6d
+  65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f 70 20
+  7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ ""
   0a
 
+  ~ "  3 pick 3 pick != {"
+  20 20 33 20 70 69 63 6b 20 33 20 70 69 63 6b 20
+  21 3d 20 7b 0a
+
+  ~ "    3 pick"
+  ~ " compilation-definition-dynamic-filenames @"
+  20 20 20 20 33 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 64 79 6e 61 6d 69 63 2d 66 69 6c 65 6e 61
+  6d 65 73 20 40 0a
+
+  ~ "    dup { read-inputs-from-filename-list } { drop"
+  ~ " } if-else"
+  20 20 20 20 64 75 70 20 7b 20 72 65 61 64 2d 69
+  6e 70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e
+  61 6d 65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f
+  70 20 7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ "  } if"
+  20 20 7d 20 69 66 0a
+
   ~ ""
   0a
 
@@ -115630,11 +116067,37 @@
   64 79 6e 61 6d 69 63 2d 66 69 6c 65 6e 61 6d 65
   73 20 40 0a
 
-  ~ "  read-inputs-from-filename-list"
-  20 20 72 65 61 64 2d 69 6e 70 75 74 73 2d 66 72
-  6f 6d 2d 66 69 6c 65 6e 61 6d 65 2d 6c 69 73 74
+  ~ "  dup { read-inputs-from-filename-list } { drop }"
+  ~ " if-else"
+  20 20 64 75 70 20 7b 20 72 65 61 64 2d 69 6e 70
+  75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61 6d
+  65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f 70 20
+  7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ ""
   0a
 
+  ~ "  3 pick 3 pick != {"
+  20 20 33 20 70 69 63 6b 20 33 20 70 69 63 6b 20
+  21 3d 20 7b 0a
+
+  ~ "    3 pick compilation-definition-boot-filenames"
+  ~ " @"
+  20 20 20 20 33 20 70 69 63 6b 20 63 6f 6d 70 69
+  6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69 6f
+  6e 2d 62 6f 6f 74 2d 66 69 6c 65 6e 61 6d 65 73
+  20 40 0a
+
+  ~ "    dup { read-inputs-from-filename-list } { drop"
+  ~ " } if-else"
+  20 20 20 20 64 75 70 20 7b 20 72 65 61 64 2d 69
+  6e 70 75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e
+  61 6d 65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f
+  70 20 7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ "  } if"
+  20 20 7d 20 69 66 0a
+
   ~ ""
   0a
 
@@ -115644,11 +116107,31 @@
   62 6f 6f 74 2d 66 69 6c 65 6e 61 6d 65 73 20 40
   0a
 
-  ~ "  read-inputs-from-filename-list"
-  20 20 72 65 61 64 2d 69 6e 70 75 74 73 2d 66 72
-  6f 6d 2d 66 69 6c 65 6e 61 6d 65 2d 6c 69 73 74
+  ~ "  dup { read-inputs-from-filename-list } { drop }"
+  ~ " if-else"
+  20 20 64 75 70 20 7b 20 72 65 61 64 2d 69 6e 70
+  75 74 73 2d 66 72 6f 6d 2d 66 69 6c 65 6e 61 6d
+  65 2d 6c 69 73 74 20 7d 20 7b 20 64 72 6f 70 20
+  7d 20 69 66 2d 65 6c 73 65 0a
+
+  ~ ""
   0a
 
+  ~ "  4 roll drop"
+  20 20 34 20 72 6f 6c 6c 20 64 72 6f 70 0a
+
+  ~ "  ~ (definition structure pointer,"
+  ~ " hex-transformed source pointer,"
+  20 20 7e 20 28 64 65 66 69 6e 69 74 69 6f 6e 20
+  73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65
+  72 2c 20 68 65 78 2d 74 72 61 6e 73 66 6f 72 6d
+  65 64 20 73 6f 75 72 63 65 20 70 6f 69 6e 74 65
+  72 2c 0a
+
+  ~ "  ~  output point)"
+  20 20 7e 20 20 6f 75 74 70 75 74 20 70 6f 69 6e
+  74 29 0a
+
   ~ ""
   0a
 
@@ -116070,7 +116553,7 @@
   ~   This is the end of the long string literal. We now return you to the
   ~ normal hex-dump stuff.
 
-  00 00 00 00 00                    ~                     (alignment padding)
-~ label total-size at offset 0x00000000000af948 is here.
+  00 00 00                          ~                     (alignment padding)
+~ label total-size at offset 0x00000000000b0570 is here.
 
 ~ This is the end of the hex dump. Thanks for reading!