about summary refs log tree commit diff
path: root/evoke.hex
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-10-05 19:54:39 -0700
committerIrene Knapp <ireneista@irenes.space>2026-10-05 19:54:39 -0700
commit39304d51c4a6d057e6515a9f75db2086940f6877 (patch)
treee7ed75c42d3a0bd877303e10cce9f7f9bd5d79fd /evoke.hex
parentb8798f26ee09c4b30ffe033bd657a7f4c99210e5 (diff)
move to a struct-based definition of compilation inputs
the migration process was a pain - order of operations for the rebuild was rough to figure out - but the actual implementation is way easier than all that stack juggling

Force-Push: yes
Change-Id: I8bbe4dfb39e5f0ed69f9759e87ac6ab79ec7558b
Diffstat (limited to 'evoke.hex')
-rw-r--r--evoke.hex803
1 files changed, 466 insertions, 337 deletions
diff --git a/evoke.hex b/evoke.hex
index d061b80..b97bb43 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)
 
-  98 eb 0a 00 00 00 00 00           ~ *size in file
-  98 eb 0a 00 00 00 00 00           ~ *size in memory
+  d0 ee 0a 00 00 00 00 00           ~ *size in file
+  d0 ee 0a 00 00 00 00 00           ~ *size in memory
 
   00 00 00 00 00 00 00 00           ~ segment alignment
 
@@ -114306,6 +114306,59 @@
   ~ ""
   0a
 
+  ~ ": compilation-definition-top-level-filename ;"
+  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 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 + ;"
+  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
+
+  ~ ": compilation-definition-dynamic-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 64 79 6e 61 6d 69 63
+  2d 66 69 6c 65 6e 61 6d 65 73 20 32 20 38 20 2a
+  20 2b 20 3b 0a
+
+  ~ ": compilation-definition-boot-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 62 6f 6f 74 2d 66 69
+  6c 65 6e 61 6d 65 73 20 33 20 38 20 2a 20 2b 20
+  3b 0a
+
+  ~ ": compilation-definition-compile-header 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 63 6f 6d 70 69 6c 65
+  2d 68 65 61 64 65 72 20 34 20 38 20 2a 20 2b 20
+  3b 0a
+
+  ~ ": compilation-definition-compile-footer 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 66 6f 6f 74 65 72 20 35 20 38 20 2a 20 2b 20
+  3b 0a
+
+  ~ ": allocate-compilation-definition"
+  3a 20 61 6c 6c 6f 63 61 74 65 2d 63 6f 6d 70 69
+  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
+  20 3b 0a
+
+  ~ ""
+  0a
+
+  ~ ""
+  0a
+
   ~ "~   This accepts a pointer to an existing buffer"
   ~ " for file contents to be"
   7e 20 20 20 54 68 69 73 20 61 63 63 65 70 74 73
@@ -114814,56 +114867,71 @@
   ~ ""
   0a
 
-  ~ "~   Given a description of an executable, compile"
-  ~ " and output that executable"
-  7e 20 20 20 47 69 76 65 6e 20 61 20 64 65 73 63
-  72 69 70 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78
-  65 63 75 74 61 62 6c 65 2c 20 63 6f 6d 70 69 6c
-  65 20 61 6e 64 20 6f 75 74 70 75 74 20 74 68 61
-  74 20 65 78 65 63 75 74 61 62 6c 65 0a
+  ~ "~   Given a compilation-definition structure"
+  ~ " which is a description of an"
+  7e 20 20 20 47 69 76 65 6e 20 61 20 63 6f 6d 70
+  69 6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69
+  6f 6e 20 73 74 72 75 63 74 75 72 65 20 77 68 69
+  63 68 20 69 73 20 61 20 64 65 73 63 72 69 70 74
+  69 6f 6e 20 6f 66 20 61 6e 0a
 
-  ~ "~ as runnable binary, to standard output."
-  7e 20 61 73 20 72 75 6e 6e 61 62 6c 65 20 62 69
-  6e 61 72 79 2c 20 74 6f 20 73 74 61 6e 64 61 72
-  64 20 6f 75 74 70 75 74 2e 0a
+  ~ "~ executable, compile and output that executable"
+  ~ " as runnable binary, to"
+  7e 20 65 78 65 63 75 74 61 62 6c 65 2c 20 63 6f
+  6d 70 69 6c 65 20 61 6e 64 20 6f 75 74 70 75 74
+  20 74 68 61 74 20 65 78 65 63 75 74 61 62 6c 65
+  20 61 73 20 72 75 6e 6e 61 62 6c 65 20 62 69 6e
+  61 72 79 2c 20 74 6f 0a
+
+  ~ "~ standard output."
+  7e 20 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75
+  74 2e 0a
 
   ~ "~"
   7e 0a
 
-  ~ "~ (static source filename list, dynamic source"
-  ~ " filename list,"
-  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
+  ~ "~ (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
 
-  ~ "~  boot source filename list, compile-header word"
-  ~ " name,"
-  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 63 6f
-  6d 70 69 6c 65 2d 68 65 61 64 65 72 20 77 6f 72
-  64 20 6e 61 6d 65 2c 0a
+  ~ ": enchant-from-definition"
+  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
 
-  ~ "~  compile-footer word name --)"
-  7e 20 20 63 6f 6d 70 69 6c 65 2d 66 6f 6f 74 65
-  72 20 77 6f 72 64 20 6e 61 6d 65 20 2d 2d 29 0a
+  ~ "  dup dup dup"
+  20 20 64 75 70 20 64 75 70 20 64 75 70 0a
 
-  ~ ": enchant-from-description"
-  3a 20 65 6e 63 68 61 6e 74 2d 66 72 6f 6d 2d 64
-  65 73 63 72 69 70 74 69 6f 6e 0a
+  ~ "  compilation-definition-boot-filenames @"
+  ~ " 3unroll"
+  20 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 20 33 75 6e 72 6f 6c
+  6c 0a
 
-  ~ "  5 roll 5 roll 5 roll read-inputs"
-  20 20 35 20 72 6f 6c 6c 20 35 20 72 6f 6c 6c 20
-  35 20 72 6f 6c 6c 20 72 65 61 64 2d 69 6e 70 75
-  74 73 0a
+  ~ "  compilation-definition-dynamic-filenames @"
+  ~ " 3unroll"
+  20 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 20 33 75 6e
+  72 6f 6c 6c 0a
+
+  ~ "  compilation-definition-static-filenames @"
+  ~ " 3unroll"
+  20 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 20 33 75 6e 72
+  6f 6c 6c 0a
 
-  ~ "  ~ (compile-header word name, compile-footer"
-  ~ " word name, source to precompile,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 68 65 61
-  64 65 72 20 77 6f 72 64 20 6e 61 6d 65 2c 20 63
-  6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72 20 77 6f
-  72 64 20 6e 61 6d 65 2c 20 73 6f 75 72 63 65 20
-  74 6f 20 70 72 65 63 6f 6d 70 69 6c 65 2c 0a
+  ~ "  read-inputs"
+  20 20 72 65 61 64 2d 69 6e 70 75 74 73 0a
+
+  ~ "  ~ (definition structure pointer, source to"
+  ~ " precompile,"
+  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
 
   ~ "  ~  source to copy to log, source to copy"
   ~ " textually)"
@@ -114902,15 +114970,19 @@
   ~ "  docol ,"
   20 20 64 6f 63 6f 6c 20 2c 0a
 
-  ~ "  6 roll find entry-to-execution-token literal"
-  20 20 36 20 72 6f 6c 6c 20 66 69 6e 64 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 6c 69 74 65 72 61 6c 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
 
-  ~ "  5 roll find entry-to-execution-token literal"
-  20 20 35 20 72 6f 6c 6c 20 66 69 6e 64 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 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
 
   ~ "  4 roll literal"
   20 20 34 20 72 6f 6c 6c 20 6c 69 74 65 72 61 6c
@@ -114949,36 +115021,50 @@
   ~ ""
   0a
 
-  ~ "~   Given a filename containing the top-level"
-  ~ " source of an executable, compile"
-  7e 20 20 20 47 69 76 65 6e 20 61 20 66 69 6c 65
-  6e 61 6d 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20
-  74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 73 6f
-  75 72 63 65 20 6f 66 20 61 6e 20 65 78 65 63 75
-  74 61 62 6c 65 2c 20 63 6f 6d 70 69 6c 65 0a
+  ~ "~   Look up the word "latest-executable-data""
+  ~ " dynamically, thus taking the"
+  7e 20 20 20 4c 6f 6f 6b 20 75 70 20 74 68 65 20
+  77 6f 72 64 20 22 6c 61 74 65 73 74 2d 65 78 65
+  63 75 74 61 62 6c 65 2d 64 61 74 61 22 20 64 79
+  6e 61 6d 69 63 61 6c 6c 79 2c 20 74 68 75 73 20
+  74 61 6b 69 6e 67 20 74 68 65 0a
+
+  ~ "~ most recent copy of it at runtime, invoke it,"
+  ~ " and use the resulting value"
+  7e 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 6f
+  70 79 20 6f 66 20 69 74 20 61 74 20 72 75 6e 74
+  69 6d 65 2c 20 69 6e 76 6f 6b 65 20 69 74 2c 20
+  61 6e 64 20 75 73 65 20 74 68 65 20 72 65 73 75
+  6c 74 69 6e 67 20 76 61 6c 75 65 0a
 
-  ~ "~ and output that executable as runnable binary,"
-  ~ " to standard output."
-  7e 20 61 6e 64 20 6f 75 74 70 75 74 20 74 68 61
-  74 20 65 78 65 63 75 74 61 62 6c 65 20 61 73 20
-  72 75 6e 6e 61 62 6c 65 20 62 69 6e 61 72 79 2c
-  20 74 6f 20 73 74 61 6e 64 61 72 64 20 6f 75 74
-  70 75 74 2e 0a
+  ~ "~ as the compilation definition for"
+  ~ " enchant-from-definition."
+  7e 20 61 73 20 74 68 65 20 63 6f 6d 70 69 6c 61
+  74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20
+  66 6f 72 20 65 6e 63 68 61 6e 74 2d 66 72 6f 6d
+  2d 64 65 66 69 6e 69 74 69 6f 6e 2e 0a
 
   ~ "~"
   7e 0a
 
-  ~ "~ (top-level source filename --)"
-  7e 20 28 74 6f 70 2d 6c 65 76 65 6c 20 73 6f 75
-  72 63 65 20 66 69 6c 65 6e 61 6d 65 20 2d 2d 29
-  0a
+  ~ "~   The typical way to use this word is"
+  ~ " immediately after including the"
+  7e 20 20 20 54 68 65 20 74 79 70 69 63 61 6c 20
+  77 61 79 20 74 6f 20 75 73 65 20 74 68 69 73 20
+  77 6f 72 64 20 69 73 20 69 6d 6d 65 64 69 61 74
+  65 6c 79 20 61 66 74 65 72 20 69 6e 63 6c 75 64
+  69 6e 67 20 74 68 65 0a
+
+  ~ "~ top-level source file of the executable you"
+  ~ " want to enchant."
+  7e 20 74 6f 70 2d 6c 65 76 65 6c 20 73 6f 75 72
+  63 65 20 66 69 6c 65 20 6f 66 20 74 68 65 20 65
+  78 65 63 75 74 61 62 6c 65 20 79 6f 75 20 77 61
+  6e 74 20 74 6f 20 65 6e 63 68 61 6e 74 2e 0a
 
   ~ ": enchant"
   3a 20 65 6e 63 68 61 6e 74 0a
 
-  ~ "  include drop"
-  20 20 69 6e 63 6c 75 64 65 20 64 72 6f 70 0a
-
   ~ "  s" latest-executable-data" find"
   ~ " entry-to-execution-token execute"
   20 20 73 22 20 6c 61 74 65 73 74 2d 65 78 65 63
@@ -114987,9 +115073,9 @@
   74 69 6f 6e 2d 74 6f 6b 65 6e 20 65 78 65 63 75
   74 65 0a
 
-  ~ "  enchant-from-description ;"
+  ~ "  enchant-from-definition ;"
   20 20 65 6e 63 68 61 6e 74 2d 66 72 6f 6d 2d 64
-  65 73 63 72 69 70 74 69 6f 6e 20 3b 0a
+  65 66 69 6e 69 74 69 6f 6e 20 3b 0a
 
   ~ ""
   0a
@@ -114997,36 +115083,40 @@
   ~ ""
   0a
 
-  ~ "~   Given a filename containing the top-level"
-  ~ " source of an executable, compile"
-  7e 20 20 20 47 69 76 65 6e 20 61 20 66 69 6c 65
-  6e 61 6d 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20
-  74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 73 6f
-  75 72 63 65 20 6f 66 20 61 6e 20 65 78 65 63 75
-  74 61 62 6c 65 2c 20 63 6f 6d 70 69 6c 65 0a
+  ~ "~   Given a compilation-definition structure"
+  ~ " which is a description of an"
+  7e 20 20 20 47 69 76 65 6e 20 61 20 63 6f 6d 70
+  69 6c 61 74 69 6f 6e 2d 64 65 66 69 6e 69 74 69
+  6f 6e 20 73 74 72 75 63 74 75 72 65 20 77 68 69
+  63 68 20 69 73 20 61 20 64 65 73 63 72 69 70 74
+  69 6f 6e 20 6f 66 20 61 6e 0a
+
+  ~ "~ executable, compile and output that executable"
+  ~ " as commented hex dump, to"
+  7e 20 65 78 65 63 75 74 61 62 6c 65 2c 20 63 6f
+  6d 70 69 6c 65 20 61 6e 64 20 6f 75 74 70 75 74
+  20 74 68 61 74 20 65 78 65 63 75 74 61 62 6c 65
+  20 61 73 20 63 6f 6d 6d 65 6e 74 65 64 20 68 65
+  78 20 64 75 6d 70 2c 20 74 6f 0a
 
-  ~ "~ and output that executable as a commented hex"
-  ~ " dump, to standard output."
-  7e 20 61 6e 64 20 6f 75 74 70 75 74 20 74 68 61
-  74 20 65 78 65 63 75 74 61 62 6c 65 20 61 73 20
-  61 20 63 6f 6d 6d 65 6e 74 65 64 20 68 65 78 20
-  64 75 6d 70 2c 20 74 6f 20 73 74 61 6e 64 61 72
-  64 20 6f 75 74 70 75 74 2e 0a
+  ~ "~ standard output. Processing that hex dump"
+  ~ " through "hex" will give an"
+  7e 20 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75
+  74 2e 20 50 72 6f 63 65 73 73 69 6e 67 20 74 68
+  61 74 20 68 65 78 20 64 75 6d 70 20 74 68 72 6f
+  75 67 68 20 22 68 65 78 22 20 77 69 6c 6c 20 67
+  69 76 65 20 61 6e 0a
 
-  ~ "~ Processing the hex dump through "hex" will give"
-  ~ " an identical binary to what"
-  7e 20 50 72 6f 63 65 73 73 69 6e 67 20 74 68 65
-  20 68 65 78 20 64 75 6d 70 20 74 68 72 6f 75 67
-  68 20 22 68 65 78 22 20 77 69 6c 6c 20 67 69 76
-  65 20 61 6e 20 69 64 65 6e 74 69 63 61 6c 20 62
-  69 6e 61 72 79 20 74 6f 20 77 68 61 74 0a
+  ~ "~ identical binary to what "enchant" would have"
+  ~ " produced, with the same"
+  7e 20 69 64 65 6e 74 69 63 61 6c 20 62 69 6e 61
+  72 79 20 74 6f 20 77 68 61 74 20 22 65 6e 63 68
+  61 6e 74 22 20 77 6f 75 6c 64 20 68 61 76 65 20
+  70 72 6f 64 75 63 65 64 2c 20 77 69 74 68 20 74
+  68 65 20 73 61 6d 65 0a
 
-  ~ "~ "enchant" would have produced, with the same"
-  ~ " inputs."
-  7e 20 22 65 6e 63 68 61 6e 74 22 20 77 6f 75 6c
-  64 20 68 61 76 65 20 70 72 6f 64 75 63 65 64 2c
-  20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 69
-  6e 70 75 74 73 2e 0a
+  ~ "~ inputs."
+  7e 20 69 6e 70 75 74 73 2e 0a
 
   ~ "~"
   7e 0a
@@ -115087,53 +115177,14 @@
   ~ "~"
   7e 0a
 
-  ~ "~ (top-level source filename --)"
-  7e 20 28 74 6f 70 2d 6c 65 76 65 6c 20 73 6f 75
-  72 63 65 20 66 69 6c 65 6e 61 6d 65 20 2d 2d 29
-  0a
-
-  ~ ": inscribe"
-  3a 20 69 6e 73 63 72 69 62 65 0a
-
-  ~ "  allocate-string-if-temporary"
-  20 20 61 6c 6c 6f 63 61 74 65 2d 73 74 72 69 6e
-  67 2d 69 66 2d 74 65 6d 70 6f 72 61 72 79 0a
-
-  ~ "  dup include drop"
-  20 20 64 75 70 20 69 6e 63 6c 75 64 65 20 64 72
-  6f 70 0a
-
-  ~ "  s" latest-executable-data" find"
-  ~ " entry-to-execution-token execute"
-  20 20 73 22 20 6c 61 74 65 73 74 2d 65 78 65 63
-  75 74 61 62 6c 65 2d 64 61 74 61 22 20 66 69 6e
-  64 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 0a
-
-  ~ "  ~ (top-level source filename, static source"
-  ~ " filename list,"
-  20 20 7e 20 28 74 6f 70 2d 6c 65 76 65 6c 20 73
-  6f 75 72 63 65 20 66 69 6c 65 6e 61 6d 65 2c 20
-  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 0a
-
-  ~ "  ~  dynamic source filename list, boot source"
-  ~ " filename list,"
-  20 20 7e 20 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 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 0a
-
-  ~ "  ~  compile-header word name, compile-footer"
-  ~ " word name --)"
-  20 20 7e 20 20 63 6f 6d 70 69 6c 65 2d 68 65 61
-  64 65 72 20 77 6f 72 64 20 6e 61 6d 65 2c 20 63
-  6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72 20 77 6f
-  72 64 20 6e 61 6d 65 20 2d 2d 29 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
 
-  ~ ""
-  0a
+  ~ ": inscribe-from-definition"
+  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
 
   ~ "  ~   We begin by constructing the full text of"
   ~ " all the source that will be"
@@ -115182,55 +115233,138 @@
   ~ "  here @ dup"
   20 20 68 65 72 65 20 40 20 64 75 70 0a
 
-  ~ "  ~ (top-level source filename, static source"
-  ~ " filename list,"
-  20 20 7e 20 28 74 6f 70 2d 6c 65 76 65 6c 20 73
-  6f 75 72 63 65 20 66 69 6c 65 6e 61 6d 65 2c 20
-  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 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
 
-  ~ "  ~  dynamic source filename list, boot source"
-  ~ " filename list,"
-  20 20 7e 20 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 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 0a
-
-  ~ "  ~  compile-header word name, compile-footer"
-  ~ " word name,"
-  20 20 7e 20 20 63 6f 6d 70 69 6c 65 2d 68 65 61
-  64 65 72 20 77 6f 72 64 20 6e 61 6d 65 2c 20 63
-  6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72 20 77 6f
-  72 64 20 6e 61 6d 65 2c 0a
-
-  ~ "  ~  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
+  ~ "  ~  output point)"
+  20 20 7e 20 20 6f 75 74 70 75 74 20 70 6f 69 6e
   74 29 0a
 
   ~ ""
   0a
 
-  ~ "  6 pick read-inputs-from-filename-list"
-  20 20 36 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
+  ~ "  2 pick compilation-definition-static-filenames"
+  ~ " @"
+  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
+  73 74 61 74 69 63 2d 66 69 6c 65 6e 61 6d 65 73
+  20 40 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
+  ~ "  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
+  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
+  ~ ""
+  0a
+
+  ~ "  2 pick compilation-definition-dynamic-filenames"
+  ~ " @"
+  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
+  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
+  0a
+
+  ~ ""
+  0a
+
+  ~ "  2 pick compilation-definition-boot-filenames @"
+  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
+  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
+  0a
+
+  ~ ""
+  0a
+
+  ~ "  ~   The top-level source file will try to look"
+  ~ " up its own filename, but this"
+  20 20 7e 20 20 20 54 68 65 20 74 6f 70 2d 6c 65
+  76 65 6c 20 73 6f 75 72 63 65 20 66 69 6c 65 20
+  77 69 6c 6c 20 74 72 79 20 74 6f 20 6c 6f 6f 6b
+  20 75 70 20 69 74 73 20 6f 77 6e 20 66 69 6c 65
+  6e 61 6d 65 2c 20 62 75 74 20 74 68 69 73 0a
+
+  ~ "  ~ is all on standard input, so it doesn't have"
+  ~ " one. We must deceive it!"
+  20 20 7e 20 69 73 20 61 6c 6c 20 6f 6e 20 73 74
+  61 6e 64 61 72 64 20 69 6e 70 75 74 2c 20 73 6f
+  20 69 74 20 64 6f 65 73 6e 27 74 20 68 61 76 65
+  20 6f 6e 65 2e 20 57 65 20 6d 75 73 74 20 64 65
+  63 65 69 76 65 20 69 74 21 0a
+
+  ~ "  s"  : current-input-file-name [ s""
+  ~ " pack-raw-string"
+  20 20 73 22 20 20 3a 20 63 75 72 72 65 6e 74 2d
+  69 6e 70 75 74 2d 66 69 6c 65 2d 6e 61 6d 65 20
+  5b 20 73 22 20 70 61 63 6b 2d 72 61 77 2d 73 74
+  72 69 6e 67 0a
+
+  ~ "  ~ Outputting quotation marks is, as always, a"
+  ~ " pain."
+  20 20 7e 20 4f 75 74 70 75 74 74 69 6e 67 20 71
+  75 6f 74 61 74 69 6f 6e 20 6d 61 72 6b 73 20 69
+  73 2c 20 61 73 20 61 6c 77 61 79 73 2c 20 61 20
+  70 61 69 6e 2e 0a
+
+  ~ "  0x22 pack8 s"  " pack-raw-string"
+  20 20 30 78 32 32 20 70 61 63 6b 38 20 73 22 20
+  20 22 20 70 61 63 6b 2d 72 61 77 2d 73 74 72 69
+  6e 67 0a
+
+  ~ "  2 pick"
+  ~ " compilation-definition-top-level-filename @"
+  ~ " pack-raw-string"
+  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
+  74 6f 70 2d 6c 65 76 65 6c 2d 66 69 6c 65 6e 61
+  6d 65 20 40 20 70 61 63 6b 2d 72 61 77 2d 73 74
+  72 69 6e 67 0a
+
+  ~ "  0x22 pack8"
+  20 20 30 78 32 32 20 70 61 63 6b 38 0a
 
-  ~ "  8 roll pack-file-contents"
-  20 20 38 20 72 6f 6c 6c 20 70 61 63 6b 2d 66 69
-  6c 65 2d 63 6f 6e 74 65 6e 74 73 0a
+  ~ "  s"  literal-string ] ; " pack-raw-string"
+  20 20 73 22 20 20 6c 69 74 65 72 61 6c 2d 73 74
+  72 69 6e 67 20 5d 20 3b 20 22 20 70 61 63 6b 2d
+  72 61 77 2d 73 74 72 69 6e 67 0a
+
+  ~ ""
+  0a
+
+  ~ "  ~ Having set that up, now we can include the"
+  ~ " actual top-level file."
+  20 20 7e 20 48 61 76 69 6e 67 20 73 65 74 20 74
+  68 61 74 20 75 70 2c 20 6e 6f 77 20 77 65 20 63
+  61 6e 20 69 6e 63 6c 75 64 65 20 74 68 65 20 61
+  63 74 75 61 6c 20 74 6f 70 2d 6c 65 76 65 6c 20
+  66 69 6c 65 2e 0a
+
+  ~ "  2 pick"
+  ~ " compilation-definition-top-level-filename @"
+  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
+  74 6f 70 2d 6c 65 76 65 6c 2d 66 69 6c 65 6e 61
+  6d 65 20 40 0a
+
+  ~ "  pack-file-contents"
+  20 20 70 61 63 6b 2d 66 69 6c 65 2d 63 6f 6e 74
+  65 6e 74 73 0a
 
   ~ ""
   0a
@@ -115267,159 +115401,79 @@
   ~ "  ~"
   20 20 7e 0a
 
-  ~ "  ~   So, we can take the filename list pointers"
-  ~ " that will become parameters"
-  20 20 7e 20 20 20 53 6f 2c 20 77 65 20 63 61 6e
-  20 74 61 6b 65 20 74 68 65 20 66 69 6c 65 6e 61
-  6d 65 20 6c 69 73 74 20 70 6f 69 6e 74 65 72 73
-  20 74 68 61 74 20 77 69 6c 6c 20 62 65 63 6f 6d
-  65 20 70 61 72 61 6d 65 74 65 72 73 0a
-
-  ~ "  ~ to "enchant" and pass them in directly,"
-  ~ " heedless of the fact they"
-  20 20 7e 20 74 6f 20 22 65 6e 63 68 61 6e 74 22
-  20 61 6e 64 20 70 61 73 73 20 74 68 65 6d 20 69
-  6e 20 64 69 72 65 63 74 6c 79 2c 20 68 65 65 64
-  6c 65 73 73 20 6f 66 20 74 68 65 20 66 61 63 74
-  20 74 68 65 79 0a
-
-  ~ "  ~ reference locations in the outer log."
-  20 20 7e 20 72 65 66 65 72 65 6e 63 65 20 6c 6f
-  63 61 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6f
-  75 74 65 72 20 6c 6f 67 2e 0a
-
-  ~ "  s"  0x" pack-raw-string 7 roll pack-hex64"
-  20 20 73 22 20 20 30 78 22 20 70 61 63 6b 2d 72
-  61 77 2d 73 74 72 69 6e 67 20 37 20 72 6f 6c 6c
-  20 70 61 63 6b 2d 68 65 78 36 34 0a
-
-  ~ "  s"  0x" pack-raw-string 6 roll pack-hex64"
-  20 20 73 22 20 20 30 78 22 20 70 61 63 6b 2d 72
-  61 77 2d 73 74 72 69 6e 67 20 36 20 72 6f 6c 6c
-  20 70 61 63 6b 2d 68 65 78 36 34 0a
-
-  ~ "  s"  0x" pack-raw-string 5 roll pack-hex64"
-  20 20 73 22 20 20 30 78 22 20 70 61 63 6b 2d 72
-  61 77 2d 73 74 72 69 6e 67 20 35 20 72 6f 6c 6c
-  20 70 61 63 6b 2d 68 65 78 36 34 0a
-
-  ~ "  ~ (compile-header word name, compile-footer"
-  ~ " word name,"
-  20 20 7e 20 28 63 6f 6d 70 69 6c 65 2d 68 65 61
-  64 65 72 20 77 6f 72 64 20 6e 61 6d 65 2c 20 63
-  6f 6d 70 69 6c 65 2d 66 6f 6f 74 65 72 20 77 6f
-  72 64 20 6e 61 6d 65 2c 0a
-
-  ~ "  ~  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
-
-  ~ "  ~   We do not have that luxury with the two"
-  ~ " compile hooks; we need copies of"
-  20 20 7e 20 20 20 57 65 20 64 6f 20 6e 6f 74 20
-  68 61 76 65 20 74 68 61 74 20 6c 75 78 75 72 79
-  20 77 69 74 68 20 74 68 65 20 74 77 6f 20 63 6f
-  6d 70 69 6c 65 20 68 6f 6f 6b 73 3b 20 77 65 20
-  6e 65 65 64 20 63 6f 70 69 65 73 20 6f 66 0a
-
-  ~ "  ~ them that are under the hex transform. We"
-  ~ " produce code that looks them up"
-  20 20 7e 20 74 68 65 6d 20 74 68 61 74 20 61 72
-  65 20 75 6e 64 65 72 20 74 68 65 20 68 65 78 20
-  74 72 61 6e 73 66 6f 72 6d 2e 20 57 65 20 70 72
-  6f 64 75 63 65 20 63 6f 64 65 20 74 68 61 74 20
-  6c 6f 6f 6b 73 20 74 68 65 6d 20 75 70 0a
-
-  ~ "  ~ by name. Notice that this is possible because"
-  ~ " we included the top-level"
-  20 20 7e 20 62 79 20 6e 61 6d 65 2e 20 4e 6f 74
-  69 63 65 20 74 68 61 74 20 74 68 69 73 20 69 73
-  20 70 6f 73 73 69 62 6c 65 20 62 65 63 61 75 73
-  65 20 77 65 20 69 6e 63 6c 75 64 65 64 20 74 68
-  65 20 74 6f 70 2d 6c 65 76 65 6c 0a
-
-  ~ "  ~ source in our full source text."
-  20 20 7e 20 73 6f 75 72 63 65 20 69 6e 20 6f 75
-  72 20 66 75 6c 6c 20 73 6f 75 72 63 65 20 74 65
-  78 74 2e 0a
+  ~ "  ~   With that said, though, since one way or"
+  ~ " another it's going to be"
+  20 20 7e 20 20 20 57 69 74 68 20 74 68 61 74 20
+  73 61 69 64 2c 20 74 68 6f 75 67 68 2c 20 73 69
+  6e 63 65 20 6f 6e 65 20 77 61 79 20 6f 72 20 61
+  6e 6f 74 68 65 72 20 69 74 27 73 20 67 6f 69 6e
+  67 20 74 6f 20 62 65 0a
+
+  ~ "  ~ looking up latest-executable-data"
+  ~ " dynamically, there's no reason to try"
+  20 20 7e 20 6c 6f 6f 6b 69 6e 67 20 75 70 20 6c
+  61 74 65 73 74 2d 65 78 65 63 75 74 61 62 6c 65
+  2d 64 61 74 61 20 64 79 6e 61 6d 69 63 61 6c 6c
+  79 2c 20 74 68 65 72 65 27 73 20 6e 6f 20 72 65
+  61 73 6f 6e 20 74 6f 20 74 72 79 0a
+
+  ~ "  ~ any sophisticated means of passing individual"
+  ~ " fields or anything."
+  20 20 7e 20 61 6e 79 20 73 6f 70 68 69 73 74 69
+  63 61 74 65 64 20 6d 65 61 6e 73 20 6f 66 20 70
+  61 73 73 69 6e 67 20 69 6e 64 69 76 69 64 75 61
+  6c 20 66 69 65 6c 64 73 20 6f 72 20 61 6e 79 74
+  68 69 6e 67 2e 0a
 
   ~ "  ~"
   20 20 7e 0a
 
-  ~ "  ~   Outputting quotation marks is, as always, a"
-  ~ " pain."
-  20 20 7e 20 20 20 4f 75 74 70 75 74 74 69 6e 67
-  20 71 75 6f 74 61 74 69 6f 6e 20 6d 61 72 6b 73
-  20 69 73 2c 20 61 73 20 61 6c 77 61 79 73 2c 20
-  61 20 70 61 69 6e 2e 0a
-
-  ~ "  s"  s" pack-raw-string 0x22 pack8 s"  ""
-  ~ " pack-raw-string"
-  20 20 73 22 20 20 73 22 20 70 61 63 6b 2d 72 61
-  77 2d 73 74 72 69 6e 67 20 30 78 32 32 20 70 61
-  63 6b 38 20 73 22 20 20 22 20 70 61 63 6b 2d 72
-  61 77 2d 73 74 72 69 6e 67 0a
-
-  ~ "  4 roll pack-raw-string"
-  20 20 34 20 72 6f 6c 6c 20 70 61 63 6b 2d 72 61
-  77 2d 73 74 72 69 6e 67 0a
-
-  ~ "  0x22 pack8"
-  20 20 30 78 32 32 20 70 61 63 6b 38 0a
-
-  ~ "  s"  allocate-string" pack-raw-string"
-  20 20 73 22 20 20 61 6c 6c 6f 63 61 74 65 2d 73
-  74 72 69 6e 67 22 20 70 61 63 6b 2d 72 61 77 2d
-  73 74 72 69 6e 67 0a
-
-  ~ ""
-  0a
-
-  ~ "  s"  s" pack-raw-string 0x22 pack8 s"  ""
-  ~ " pack-raw-string"
-  20 20 73 22 20 20 73 22 20 70 61 63 6b 2d 72 61
-  77 2d 73 74 72 69 6e 67 20 30 78 32 32 20 70 61
-  63 6b 38 20 73 22 20 20 22 20 70 61 63 6b 2d 72
-  61 77 2d 73 74 72 69 6e 67 0a
-
-  ~ "  3roll pack-raw-string"
-  20 20 33 72 6f 6c 6c 20 70 61 63 6b 2d 72 61 77
-  2d 73 74 72 69 6e 67 0a
-
-  ~ "  0x22 pack8"
-  20 20 30 78 32 32 20 70 61 63 6b 38 0a
-
-  ~ "  s"  allocate-string" pack-raw-string"
-  20 20 73 22 20 20 61 6c 6c 6f 63 61 74 65 2d 73
-  74 72 69 6e 67 22 20 70 61 63 6b 2d 72 61 77 2d
-  73 74 72 69 6e 67 0a
-
-  ~ "  ~ (hex-transformed source pointer, output"
-  ~ " point)"
-  20 20 7e 20 28 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
-
-  ~ "  s"  enchant-from-description" pack-raw-string"
-  20 20 73 22 20 20 65 6e 63 68 61 6e 74 2d 66 72
-  6f 6d 2d 64 65 73 63 72 69 70 74 69 6f 6e 22 20
-  70 61 63 6b 2d 72 61 77 2d 73 74 72 69 6e 67 0a
-
-  ~ "  ~ (hex-transformed source pointer, output"
-  ~ " point)"
-  20 20 7e 20 28 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
+  ~ "  ~   It might seem as if that's an unnecessary"
+  ~ " level of indirection, but for"
+  20 20 7e 20 20 20 49 74 20 6d 69 67 68 74 20 73
+  65 65 6d 20 61 73 20 69 66 20 74 68 61 74 27 73
+  20 61 6e 20 75 6e 6e 65 63 65 73 73 61 72 79 20
+  6c 65 76 65 6c 20 6f 66 20 69 6e 64 69 72 65 63
+  74 69 6f 6e 2c 20 62 75 74 20 66 6f 72 0a
+
+  ~ "  ~ the two compile hooks we specifically need to"
+  ~ " make sure the enchantment"
+  20 20 7e 20 74 68 65 20 74 77 6f 20 63 6f 6d 70
+  69 6c 65 20 68 6f 6f 6b 73 20 77 65 20 73 70 65
+  63 69 66 69 63 61 6c 6c 79 20 6e 65 65 64 20 74
+  6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20
+  65 6e 63 68 61 6e 74 6d 65 6e 74 0a
+
+  ~ "  ~ uses the copies of them that are under the"
+  ~ " hex transform. So, one way or"
+  20 20 7e 20 75 73 65 73 20 74 68 65 20 63 6f 70
+  69 65 73 20 6f 66 20 74 68 65 6d 20 74 68 61 74
+  20 61 72 65 20 75 6e 64 65 72 20 74 68 65 20 68
+  65 78 20 74 72 61 6e 73 66 6f 72 6d 2e 20 53 6f
+  2c 20 6f 6e 65 20 77 61 79 20 6f 72 0a
+
+  ~ "  ~ another it's always relying on the code from"
+  ~ " the top-level source file."
+  20 20 7e 20 61 6e 6f 74 68 65 72 20 69 74 27 73
+  20 61 6c 77 61 79 73 20 72 65 6c 79 69 6e 67 20
+  6f 6e 20 74 68 65 20 63 6f 64 65 20 66 72 6f 6d
+  20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 73
+  6f 75 72 63 65 20 66 69 6c 65 2e 0a
+
+  ~ "  s"  enchant" pack-raw-string"
+  20 20 73 22 20 20 65 6e 63 68 61 6e 74 22 20 70
+  61 63 6b 2d 72 61 77 2d 73 74 72 69 6e 67 0a
+
+  ~ "  ~ (definition struction 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 69 6f 6e 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
 
   ~ "  0 pack8 8 packalign here !"
@@ -115429,11 +115483,24 @@
   ~ ""
   0a
 
+  ~ "  ~ That's everything we need from the"
+  ~ " definition."
+  20 20 7e 20 54 68 61 74 27 73 20 65 76 65 72 79
+  74 68 69 6e 67 20 77 65 20 6e 65 65 64 20 66 72
+  6f 6d 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f
+  6e 2e 0a
+
+  ~ "  swap drop"
+  20 20 73 77 61 70 20 64 72 6f 70 0a
+
   ~ "  ~ (hex-transformed source pointer)"
   20 20 7e 20 28 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 29 0a
 
+  ~ ""
+  0a
+
   ~ "  1024 1024 4 * * allocate"
   20 20 31 30 32 34 20 31 30 32 34 20 34 20 2a 20
   2a 20 61 6c 6c 6f 63 61 74 65 0a
@@ -115464,6 +115531,68 @@
   ~ ""
   0a
 
+  ~ ""
+  0a
+
+  ~ "~   Look up the word "latest-executable-data""
+  ~ " dynamically, thus taking the"
+  7e 20 20 20 4c 6f 6f 6b 20 75 70 20 74 68 65 20
+  77 6f 72 64 20 22 6c 61 74 65 73 74 2d 65 78 65
+  63 75 74 61 62 6c 65 2d 64 61 74 61 22 20 64 79
+  6e 61 6d 69 63 61 6c 6c 79 2c 20 74 68 75 73 20
+  74 61 6b 69 6e 67 20 74 68 65 0a
+
+  ~ "~ most recent copy of it at runtime, invoke it,"
+  ~ " and use the resulting value"
+  7e 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 6f
+  70 79 20 6f 66 20 69 74 20 61 74 20 72 75 6e 74
+  69 6d 65 2c 20 69 6e 76 6f 6b 65 20 69 74 2c 20
+  61 6e 64 20 75 73 65 20 74 68 65 20 72 65 73 75
+  6c 74 69 6e 67 20 76 61 6c 75 65 0a
+
+  ~ "~ as the compilation definition for"
+  ~ " enchant-from-definition."
+  7e 20 61 73 20 74 68 65 20 63 6f 6d 70 69 6c 61
+  74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20
+  66 6f 72 20 65 6e 63 68 61 6e 74 2d 66 72 6f 6d
+  2d 64 65 66 69 6e 69 74 69 6f 6e 2e 0a
+
+  ~ "~"
+  7e 0a
+
+  ~ "~   The typical way to use this word is"
+  ~ " immediately after including the"
+  7e 20 20 20 54 68 65 20 74 79 70 69 63 61 6c 20
+  77 61 79 20 74 6f 20 75 73 65 20 74 68 69 73 20
+  77 6f 72 64 20 69 73 20 69 6d 6d 65 64 69 61 74
+  65 6c 79 20 61 66 74 65 72 20 69 6e 63 6c 75 64
+  69 6e 67 20 74 68 65 0a
+
+  ~ "~ top-level source file of the executable you"
+  ~ " want to inscribe."
+  7e 20 74 6f 70 2d 6c 65 76 65 6c 20 73 6f 75 72
+  63 65 20 66 69 6c 65 20 6f 66 20 74 68 65 20 65
+  78 65 63 75 74 61 62 6c 65 20 79 6f 75 20 77 61
+  6e 74 20 74 6f 20 69 6e 73 63 72 69 62 65 2e 0a
+
+  ~ ": inscribe"
+  3a 20 69 6e 73 63 72 69 62 65 0a
+
+  ~ "  s" latest-executable-data" find"
+  ~ " entry-to-execution-token execute"
+  20 20 73 22 20 6c 61 74 65 73 74 2d 65 78 65 63
+  75 74 61 62 6c 65 2d 64 61 74 61 22 20 66 69 6e
+  64 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 0a
+
+  ~ "  inscribe-from-definition ;"
+  20 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 20 3b 0a
+
+  ~ ""
+  0a
+
   ~ "~   This file should be included in executables"
   ~ " that use boot-source, as the"
   7e 20 20 20 54 68 69 73 20 66 69 6c 65 20 73 68
@@ -115511,7 +115640,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 0x00000000000aeb98 is here.
+  00                                ~                     (alignment padding)
+~ label total-size at offset 0x00000000000aeed0 is here.
 
 ~ This is the end of the hex dump. Thanks for reading!