diff options
| -rw-r--r-- | compilation/labels.e | 12 | ||||
| -rw-r--r-- | compilation/top-level.e | 4 | ||||
| -rw-r--r-- | compilation/transform.e | 112 | ||||
| -rw-r--r-- | evoke.hex | 480 | ||||
| -rw-r--r-- | hello.e | 2 | ||||
| -rw-r--r-- | hex.e | 2 | ||||
| -rw-r--r-- | language/dynamic/files.e | 2 | ||||
| -rw-r--r-- | language/dynamic/flow-control.e | 30 | ||||
| -rw-r--r-- | language/dynamic/interpret.e | 4 | ||||
| -rw-r--r-- | language/dynamic/linux.e | 4 | ||||
| -rw-r--r-- | vim/syntax/evocation.vim | 1 |
11 files changed, 277 insertions, 376 deletions
diff --git a/compilation/labels.e b/compilation/labels.e index 2c028aa..c34b764 100644 --- a/compilation/labels.e +++ b/compilation/labels.e @@ -192,9 +192,9 @@ : L' word value@ interpreter-flags @ 0x01 & - { ' litstring entry-to-execution-token , + { x' litstring , here @ swap packstring 8 packalign here ! - ' intern-label entry-to-execution-token , + x' intern-label , dropstring } { intern-label dropstring-with-result } if-else ; make-immediate @@ -202,18 +202,18 @@ ~ This is a concise syntax for calling use-label with a label whose name ~ you know statically. It performs L', then calls use-label. : L@' - ' L' entry-to-execution-token execute + x' L' execute interpreter-flags @ 1 & - { ' use-label entry-to-execution-token , } + { x' use-label , } { use-label } if-else ; make-immediate ~ This is a concise syntax for calling set-label with a label whose name ~ you know statically. It performs L', then calls set-label. : L!' - ' L' entry-to-execution-token execute + x' L' execute interpreter-flags @ 1 & - { ' set-label entry-to-execution-token , } + { x' set-label , } { set-label } if-else ; make-immediate diff --git a/compilation/top-level.e b/compilation/top-level.e index 959711b..2167fb9 100644 --- a/compilation/top-level.e +++ b/compilation/top-level.e @@ -135,8 +135,8 @@ 4 roll literal 3 roll literal swap literal - ' output-contents entry-to-execution-token , - ' exit entry-to-execution-token , + x' output-contents , + x' exit , label-loop 1 3unroll sys-write diff --git a/compilation/transform.e b/compilation/transform.e index 39c3bc5..46d4da8 100644 --- a/compilation/transform.e +++ b/compilation/transform.e @@ -925,7 +925,7 @@ allocate-transformation-state s" transformation-state" variable ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of ;. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] ; make-immediate @@ -953,7 +953,7 @@ allocate-transformation-state s" transformation-state" variable ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of ;asm. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] ; make-immediate @@ -1001,11 +1001,11 @@ allocate-transformation-state s" transformation-state" variable ~ implementations, they'd have to be kept in sync, and it's an important ~ user-facing word with semantics that are likely to improve over time. interpreter-flags @ - ' s" entry-to-execution-token + x' s" swap-transform-variables ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of the alternate. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] execute swap-transform-variables swap interpreter-flags ! @@ -1030,7 +1030,7 @@ allocate-transformation-state s" transformation-state" variable : label-dot-string-alternate - ' label-string-alternate entry-to-execution-token execute + x' label-string-alternate execute interpreter-flags @ 0x01 & { swap-transform-variables @@ -1928,7 +1928,7 @@ allocate-transformation-state s" transformation-state" variable ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of ;. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] ; make-immediate @@ -1959,7 +1959,7 @@ allocate-transformation-state s" transformation-state" variable ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of ;. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] ; make-immediate @@ -1970,7 +1970,7 @@ allocate-transformation-state s" transformation-state" variable : log-load-left-square-brace-alternate ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of the alternate. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] ; make-immediate ~ We need this one, too. It's not even an immediate word normally! @@ -2061,7 +2061,7 @@ allocate-transformation-state s" transformation-state" variable ~ Yeah comments have to go. : log-load-tilde-alternate - ' ~ entry-to-execution-token execute + x' ~ execute ; make-immediate @@ -2072,11 +2072,11 @@ allocate-transformation-state s" transformation-state" variable ~ transform-time part, our implementations will diverge, but this first bit ~ is the same. interpreter-flags @ - ' s" entry-to-execution-token + x' s" swap-transform-variables ~ Since [ is an immediate word, we have to go to extra trouble to compile ~ it as part of the alternate. - [ ' [ entry-to-execution-token , ] + [ x' [ , ] execute swap-transform-variables swap interpreter-flags ! @@ -2155,7 +2155,7 @@ allocate-transformation-state s" transformation-state" variable : log-load-dot-string-alternate - ' log-load-string-alternate entry-to-execution-token execute + x' log-load-string-alternate execute interpreter-flags @ 0x01 & { ~ Hey look, it's the one time we're doing something simple enough that @@ -2252,7 +2252,7 @@ allocate-transformation-state s" transformation-state" variable : log-load-executable-tick-alternate - ' log-load-tick-alternate entry-to-execution-token execute + x' log-load-tick-alternate execute interpreter-flags @ 0x01 & { s" entry-to-execution-token" log-load-compile-dynamic-word @@ -4058,8 +4058,8 @@ allocate-transformation-state s" transformation-state" variable ~ Now, regardless of what mode we're actually in, call the interpreted ~ version of s" to read the actual string and its null terminator. interpreter-flags @ - ' s" entry-to-execution-token - [ ' [ entry-to-execution-token , ] + x' s" + [ x' [ , ] execute swap interpreter-flags ! @@ -4075,7 +4075,7 @@ allocate-transformation-state s" transformation-state" variable ; make-immediate : hex-dot-string-alternate - ' hex-string-alternate entry-to-execution-token execute + x' hex-string-alternate execute interpreter-flags @ 0x01 & { ~ We look up the inner version of emitstring, too. @@ -5296,7 +5296,7 @@ allocate-transformation-state s" transformation-state" variable ~ by processing the source words that form the regular body of "variable", ~ eventually hitting the matching semicolon. Our friendly tampering is ~ now complete! - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5315,12 +5315,12 @@ allocate-transformation-state s" transformation-state" variable ~ then skip forward in the code under transformation, but that would be ~ complex, and it's unnecessary: We let it keep running, outputting the ~ usual body of s", which we know will never be reached. - ' hex-string-alternate entry-to-execution-token , + x' hex-string-alternate , s" exit" find entry-to-execution-token , ~ As before, finish up colon's responsibilities, then return control to ~ the code under transformation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5330,10 +5330,10 @@ allocate-transformation-state s" transformation-state" variable s" docol" find entry-to-execution-token execute , make-hidden - ' hex-dot-string-alternate entry-to-execution-token , + x' hex-dot-string-alternate , s" exit" find entry-to-execution-token , - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5348,7 +5348,7 @@ allocate-transformation-state s" transformation-state" variable ~ Return before doing anything. s" exit" find entry-to-execution-token , - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5360,10 +5360,10 @@ allocate-transformation-state s" transformation-state" variable s" docol" find entry-to-execution-token execute , make-hidden - ' hex-sys-write-replacement entry-to-execution-token , + x' hex-sys-write-replacement , s" exit" find entry-to-execution-token , - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5378,11 +5378,10 @@ allocate-transformation-state s" transformation-state" variable ~ of label-loop. We need to reinitialize all the metadata entries whenever ~ that happens, and reset-labels is a good semantic match for that ~ behavior, so it's a good place for the hook. - ' create-hex-output-metadata-top-of-file-entries - entry-to-execution-token , + x' create-hex-output-metadata-top-of-file-entries , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5393,10 +5392,10 @@ allocate-transformation-state s" transformation-state" variable ~ (new label value, label entry pointer --) s" 2dup" find entry-to-execution-token , - ' hex-set-label-trace entry-to-execution-token , + x' hex-set-label-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5409,10 +5408,10 @@ allocate-transformation-state s" transformation-state" variable ~ (output point, string pointer) s" 2dup" find entry-to-execution-token , ~ This one's a lot of work, so we defer to a single-purpose word. - ' hex-packstring-trace entry-to-execution-token , + x' hex-packstring-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5441,18 +5440,17 @@ allocate-transformation-state s" transformation-state" variable s" 3unroll" find entry-to-execution-token , ~ (output point, string pointer, string length NOT including terminator, ~ output point, string length NOT including terminator) - ' hex-pack-trace entry-to-execution-token , + x' hex-pack-trace , ~ (output point, string pointer, string length including terminator) s" swap" find entry-to-execution-token , - ' hex-output-metadata-entry-type-raw-string-literal - entry-to-execution-token , + x' hex-output-metadata-entry-type-raw-string-literal , s" swap" find entry-to-execution-token , - ' add-hex-output-metadata-entry entry-to-execution-token , + x' add-hex-output-metadata-entry , ~ (output point, string pointer) ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5472,10 +5470,10 @@ allocate-transformation-state s" transformation-state" variable ~ (output point, value, output point) s" lit" find entry-to-execution-token , 1 , - ' hex-pack-trace entry-to-execution-token , + x' hex-pack-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5495,10 +5493,10 @@ allocate-transformation-state s" transformation-state" variable ~ (output point, value, output point) s" lit" find entry-to-execution-token , 2 , - ' hex-pack-trace entry-to-execution-token , + x' hex-pack-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5518,10 +5516,10 @@ allocate-transformation-state s" transformation-state" variable ~ (output point, value, output point) s" lit" find entry-to-execution-token , 4 , - ' hex-pack-trace entry-to-execution-token , + x' hex-pack-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5541,10 +5539,10 @@ allocate-transformation-state s" transformation-state" variable ~ (output point, value, output point) s" lit" find entry-to-execution-token , 8 , - ' hex-pack-trace entry-to-execution-token , + x' hex-pack-trace , ~ Fall through to the inner implementation. - ' ] entry-to-execution-token execute + x' ] execute exit } if @@ -5554,7 +5552,7 @@ allocate-transformation-state s" transformation-state" variable create dropstring s" docol" find entry-to-execution-token execute , make-hidden - ' ] entry-to-execution-token execute + x' ] execute ; @@ -5691,14 +5689,14 @@ allocate-transformation-state s" transformation-state" variable ~ place for the word we're trapping. So we don't need to scrounge up any ~ runtime data for the trap's benefit; the trap will be able to get what it ~ needs by inspecting the control stack and the log. - ' hex-trace entry-to-execution-token , + x' hex-trace , ~ We're done compiling the trap's contents, so swap "here" back. Again, ~ keep this in sync with the length of the trap. 8 + here ! ~ Now we do the regular semicolon stuff. - [ ' ; entry-to-execution-token , ] + [ x' ; , ] ; make-immediate @@ -5714,13 +5712,13 @@ allocate-transformation-state s" transformation-state" variable ~ call semicolon. drop here @ 8 packalign here ! - [ ' ; entry-to-execution-token , ] + [ x' ; , ] exit } if drop ~ If no special case matches, we fall back to the regular behavior. - [ ' ;asm entry-to-execution-token , ] + [ x' ;asm , ] ; make-immediate @@ -5804,7 +5802,7 @@ allocate-transformation-state s" transformation-state" variable latest @ entry-to-name dup s" label-loop" stringcmp 0 = { ~ In label-loop. drop - ' hex-allocate-replacement entry-to-execution-token , + x' hex-allocate-replacement , } { ~ Not in label-loop. drop @@ -5855,7 +5853,7 @@ allocate-transformation-state s" transformation-state" variable ~ down. : hex-memcopy-alternate interpreter-flags @ 0x01 & { - ' hex-memory-slide-replacement entry-to-execution-token , + x' hex-memory-slide-replacement , s" memcopy" find entry-to-execution-token , } { hex-memory-slide-replacement @@ -5863,7 +5861,7 @@ allocate-transformation-state s" transformation-state" variable } if-else ; make-immediate : hex-memmove-alternate interpreter-flags @ 0x01 & { - ' hex-memory-slide-replacement entry-to-execution-token , + x' hex-memory-slide-replacement , s" memmove" find entry-to-execution-token , } { hex-memory-slide-replacement @@ -6336,7 +6334,7 @@ allocate-transformation-state s" transformation-state" variable 8 packalign here ! - ' hex-tilde-replacement entry-to-execution-token , + x' hex-tilde-replacement , } { ~ We're in interpret mode. has-non-space-this-input-line@ swap @@ -6545,13 +6543,13 @@ allocate-transformation-state s" transformation-state" variable dup s" label-transform-one" stringcmp 0 = { drop - ' hex-label-word-replacement entry-to-execution-token , + x' hex-label-word-replacement , exit } if dup s" log-load-transform-one" stringcmp 0 = { drop - ' hex-log-load-word-replacement entry-to-execution-token , + x' hex-log-load-word-replacement , exit } if @@ -6587,7 +6585,7 @@ allocate-transformation-state s" transformation-state" variable ~ executing it in immediate mode. : hex-interpret-alternate interpreter-flags @ 0x01 & { - ' hex-interpret-replacement entry-to-execution-token , + x' hex-interpret-replacement , } { hex-interpret-replacement } if-else ; make-immediate @@ -6796,7 +6794,7 @@ allocate-transformation-state s" transformation-state" variable interpreter-flags @ 0x01 & { ~ TODO this probably needs a lit alternate (!) - ' lit entry-to-execution-token , , + x' lit , , 0 exit } if diff --git a/evoke.hex b/evoke.hex index 5396214..89de7ae 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) - f0 c9 0a 00 00 00 00 00 ~ *size in file - f0 c9 0a 00 00 00 00 00 ~ *size in memory + 00 c4 0a 00 00 00 00 00 ~ *size in file + 00 c4 0a 00 00 00 00 00 ~ *size in memory 00 00 00 00 00 00 00 00 ~ segment alignment @@ -68433,20 +68433,18 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 30 78 30 31 20 26 0a - ~ " { ' litstring entry-to-execution-token ," - 20 20 7b 20 27 20 6c 69 74 73 74 72 69 6e 67 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 2c 0a + ~ " { x' litstring ," + 20 20 7b 20 78 27 20 6c 69 74 73 74 72 69 6e 67 + 20 2c 0a ~ " here @ swap packstring 8 packalign here !" 20 20 20 20 68 65 72 65 20 40 20 73 77 61 70 20 70 61 63 6b 73 74 72 69 6e 67 20 38 20 70 61 63 6b 61 6c 69 67 6e 20 68 65 72 65 20 21 0a - ~ " ' intern-label entry-to-execution-token ," - 20 20 20 20 27 20 69 6e 74 65 72 6e 2d 6c 61 62 - 65 6c 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 2c 0a + ~ " x' intern-label ," + 20 20 20 20 78 27 20 69 6e 74 65 72 6e 2d 6c 61 + 62 65 6c 20 2c 0a ~ " dropstring }" 20 20 20 20 64 72 6f 70 73 74 72 69 6e 67 20 7d @@ -68483,19 +68481,16 @@ ~ ": L@'" 3a 20 4c 40 27 0a - ~ " ' L' entry-to-execution-token execute" - 20 20 27 20 4c 27 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 + ~ " x' L' execute" + 20 20 78 27 20 4c 27 20 65 78 65 63 75 74 65 0a ~ " interpreter-flags @ 1 &" 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 31 20 26 0a - ~ " { ' use-label entry-to-execution-token , }" - 20 20 20 20 7b 20 27 20 75 73 65 2d 6c 61 62 65 - 6c 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 2c 20 7d 0a + ~ " { x' use-label , }" + 20 20 20 20 7b 20 78 27 20 75 73 65 2d 6c 61 62 + 65 6c 20 2c 20 7d 0a ~ " { use-label } if-else" 20 20 20 20 7b 20 75 73 65 2d 6c 61 62 65 6c 20 @@ -68526,19 +68521,16 @@ ~ ": L!'" 3a 20 4c 21 27 0a - ~ " ' L' entry-to-execution-token execute" - 20 20 27 20 4c 27 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 + ~ " x' L' execute" + 20 20 78 27 20 4c 27 20 65 78 65 63 75 74 65 0a ~ " interpreter-flags @ 1 &" 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 31 20 26 0a - ~ " { ' set-label entry-to-execution-token , }" - 20 20 20 20 7b 20 27 20 73 65 74 2d 6c 61 62 65 - 6c 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 2c 20 7d 0a + ~ " { x' set-label , }" + 20 20 20 20 7b 20 78 27 20 73 65 74 2d 6c 61 62 + 65 6c 20 2c 20 7d 0a ~ " { set-label } if-else" 20 20 20 20 7b 20 73 65 74 2d 6c 61 62 65 6c 20 @@ -75467,10 +75459,8 @@ 20 20 7e 20 69 74 20 61 73 20 70 61 72 74 20 6f 66 20 3b 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -75603,10 +75593,8 @@ 20 20 7e 20 69 74 20 61 73 20 70 61 72 74 20 6f 66 20 3b 61 73 6d 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -75853,9 +75841,8 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 0a - ~ " ' s" entry-to-execution-token" - 20 20 27 20 73 22 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 0a + ~ " x' s"" + 20 20 78 27 20 73 22 0a ~ " swap-transform-variables" 20 20 73 77 61 70 2d 74 72 61 6e 73 66 6f 72 6d @@ -75874,10 +75861,8 @@ 66 20 74 68 65 20 61 6c 74 65 72 6e 61 74 65 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " execute" 20 20 65 78 65 63 75 74 65 0a @@ -75988,12 +75973,10 @@ 3a 20 6c 61 62 65 6c 2d 64 6f 74 2d 73 74 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 0a - ~ " ' label-string-alternate entry-to-execution-token" - ~ " execute" - 20 20 27 20 6c 61 62 65 6c 2d 73 74 72 69 6e 67 - 2d 61 6c 74 65 72 6e 61 74 65 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 + ~ " x' label-string-alternate execute" + 20 20 78 27 20 6c 61 62 65 6c 2d 73 74 72 69 6e + 67 2d 61 6c 74 65 72 6e 61 74 65 20 65 78 65 63 + 75 74 65 0a ~ "" 0a @@ -80640,10 +80623,8 @@ 20 20 7e 20 69 74 20 61 73 20 70 61 72 74 20 6f 66 20 3b 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -80797,10 +80778,8 @@ 20 20 7e 20 69 74 20 61 73 20 70 61 72 74 20 6f 66 20 3b 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -80860,10 +80839,8 @@ 66 20 74 68 65 20 61 6c 74 65 72 6e 61 74 65 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -81286,10 +81263,8 @@ 3a 20 6c 6f 67 2d 6c 6f 61 64 2d 74 69 6c 64 65 2d 61 6c 74 65 72 6e 61 74 65 0a - ~ " ' ~ entry-to-execution-token execute" - 20 20 27 20 7e 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 + ~ " x' ~ execute" + 20 20 78 27 20 7e 20 65 78 65 63 75 74 65 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -81343,9 +81318,8 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 0a - ~ " ' s" entry-to-execution-token" - 20 20 27 20 73 22 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 0a + ~ " x' s"" + 20 20 78 27 20 73 22 0a ~ " swap-transform-variables" 20 20 73 77 61 70 2d 74 72 61 6e 73 66 6f 72 6d @@ -81364,10 +81338,8 @@ 66 20 74 68 65 20 61 6c 74 65 72 6e 61 74 65 2e 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " execute" 20 20 65 78 65 63 75 74 65 0a @@ -81779,12 +81751,10 @@ 3a 20 6c 6f 67 2d 6c 6f 61 64 2d 64 6f 74 2d 73 74 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 0a - ~ " ' log-load-string-alternate entry-to-execution-token" - ~ " execute" - 20 20 27 20 6c 6f 67 2d 6c 6f 61 64 2d 73 74 72 - 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 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 + ~ " x' log-load-string-alternate execute" + 20 20 78 27 20 6c 6f 67 2d 6c 6f 61 64 2d 73 74 + 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 20 65 + 78 65 63 75 74 65 0a ~ "" 0a @@ -82221,12 +82191,10 @@ 74 61 62 6c 65 2d 74 69 63 6b 2d 61 6c 74 65 72 6e 61 74 65 0a - ~ " ' log-load-tick-alternate entry-to-execution-token" - ~ " execute" - 20 20 27 20 6c 6f 67 2d 6c 6f 61 64 2d 74 69 63 - 6b 2d 61 6c 74 65 72 6e 61 74 65 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 + ~ " x' log-load-tick-alternate execute" + 20 20 78 27 20 6c 6f 67 2d 6c 6f 61 64 2d 74 69 + 63 6b 2d 61 6c 74 65 72 6e 61 74 65 20 65 78 65 + 63 75 74 65 0a ~ "" 0a @@ -92548,14 +92516,11 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 0a - ~ " ' s" entry-to-execution-token" - 20 20 27 20 73 22 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 0a + ~ " x' s"" + 20 20 78 27 20 73 22 0a - ~ " [ ' [ entry-to-execution-token , ]" - 20 20 5b 20 27 20 5b 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 2c 20 5d 0a + ~ " [ x' [ , ]" + 20 20 5b 20 78 27 20 5b 20 2c 20 5d 0a ~ " execute" 20 20 65 78 65 63 75 74 65 0a @@ -92636,11 +92601,10 @@ 3a 20 68 65 78 2d 64 6f 74 2d 73 74 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 0a - ~ " ' hex-string-alternate entry-to-execution-token execute" - 20 20 27 20 68 65 78 2d 73 74 72 69 6e 67 2d 61 - 6c 74 65 72 6e 61 74 65 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 + ~ " x' hex-string-alternate execute" + 20 20 78 27 20 68 65 78 2d 73 74 72 69 6e 67 2d + 61 6c 74 65 72 6e 61 74 65 20 65 78 65 63 75 74 + 65 0a ~ "" 0a @@ -99098,10 +99062,9 @@ 20 20 20 20 7e 20 6e 6f 77 20 63 6f 6d 70 6c 65 74 65 21 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99204,11 +99167,9 @@ 20 6b 6e 6f 77 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 72 65 61 63 68 65 64 2e 0a - ~ " ' hex-string-alternate entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 73 74 72 69 6e 67 - 2d 61 6c 74 65 72 6e 61 74 65 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 2c 0a + ~ " x' hex-string-alternate ," + 20 20 20 20 78 27 20 68 65 78 2d 73 74 72 69 6e + 67 2d 61 6c 74 65 72 6e 61 74 65 20 2c 0a ~ " s" exit" find entry-to-execution-token ," 20 20 20 20 73 22 20 65 78 69 74 22 20 66 69 6e @@ -99231,10 +99192,9 @@ 6e 64 65 72 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99272,11 +99232,10 @@ ~ "" 0a - ~ " ' hex-dot-string-alternate entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 64 6f 74 2d 73 74 - 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 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 2c 0a + ~ " x' hex-dot-string-alternate ," + 20 20 20 20 78 27 20 68 65 78 2d 64 6f 74 2d 73 + 74 72 69 6e 67 2d 61 6c 74 65 72 6e 61 74 65 20 + 2c 0a ~ " s" exit" find entry-to-execution-token ," 20 20 20 20 73 22 20 65 78 69 74 22 20 66 69 6e @@ -99286,10 +99245,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99358,10 +99316,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99417,11 +99374,10 @@ ~ "" 0a - ~ " ' hex-sys-write-replacement entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 73 79 73 2d 77 72 - 69 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 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 2c 0a + ~ " x' hex-sys-write-replacement ," + 20 20 20 20 78 27 20 68 65 78 2d 73 79 73 2d 77 + 72 69 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 + 20 2c 0a ~ " s" exit" find entry-to-execution-token ," 20 20 20 20 73 22 20 65 78 69 74 22 20 66 69 6e @@ -99431,10 +99387,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99512,15 +99467,11 @@ 6c 61 63 65 20 66 6f 72 20 74 68 65 20 68 6f 6f 6b 2e 0a - ~ " ' create-hex-output-metadata-top-of-file-entries" - 20 20 20 20 27 20 63 72 65 61 74 65 2d 68 65 78 - 2d 6f 75 74 70 75 74 2d 6d 65 74 61 64 61 74 61 - 2d 74 6f 70 2d 6f 66 2d 66 69 6c 65 2d 65 6e 74 - 72 69 65 73 0a - - ~ " entry-to-execution-token ," - 20 20 20 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 2c 0a + ~ " x' create-hex-output-metadata-top-of-file-entries ," + 20 20 20 20 78 27 20 63 72 65 61 74 65 2d 68 65 + 78 2d 6f 75 74 70 75 74 2d 6d 65 74 61 64 61 74 + 61 2d 74 6f 70 2d 6f 66 2d 66 69 6c 65 2d 65 6e + 74 72 69 65 73 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -99530,10 +99481,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99575,11 +99525,9 @@ 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 2c 0a - ~ " ' hex-set-label-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 73 65 74 2d 6c 61 - 62 65 6c 2d 74 72 61 63 65 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 2c 0a + ~ " x' hex-set-label-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 73 65 74 2d 6c + 61 62 65 6c 2d 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -99589,10 +99537,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99645,11 +99592,9 @@ 20 73 69 6e 67 6c 65 2d 70 75 72 70 6f 73 65 20 77 6f 72 64 2e 0a - ~ " ' hex-packstring-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 73 74 - 72 69 6e 67 2d 74 72 61 63 65 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 2c 0a + ~ " x' hex-packstring-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 73 + 74 72 69 6e 67 2d 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -99659,10 +99604,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99807,10 +99751,9 @@ 74 68 20 4e 4f 54 20 69 6e 63 6c 75 64 69 6e 67 20 74 65 72 6d 69 6e 61 74 6f 72 29 0a - ~ " ' hex-pack-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 2d 74 - 72 61 63 65 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 2c 0a + ~ " x' hex-pack-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 2d + 74 72 61 63 65 20 2c 0a ~ "" 0a @@ -99828,27 +99771,21 @@ 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 2c 0a - ~ " ' hex-output-metadata-entry-type-raw-string-literal" - 20 20 20 20 27 20 68 65 78 2d 6f 75 74 70 75 74 - 2d 6d 65 74 61 64 61 74 61 2d 65 6e 74 72 79 2d - 74 79 70 65 2d 72 61 77 2d 73 74 72 69 6e 67 2d - 6c 69 74 65 72 61 6c 0a - - ~ " entry-to-execution-token ," - 20 20 20 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 2c 0a + ~ " x' hex-output-metadata-entry-type-raw-string-literal ," + 20 20 20 20 78 27 20 68 65 78 2d 6f 75 74 70 75 + 74 2d 6d 65 74 61 64 61 74 61 2d 65 6e 74 72 79 + 2d 74 79 70 65 2d 72 61 77 2d 73 74 72 69 6e 67 + 2d 6c 69 74 65 72 61 6c 20 2c 0a ~ " s" swap" find entry-to-execution-token ," 20 20 20 20 73 22 20 73 77 61 70 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 2c 0a - ~ " ' add-hex-output-metadata-entry" - ~ " entry-to-execution-token ," - 20 20 20 20 27 20 61 64 64 2d 68 65 78 2d 6f 75 - 74 70 75 74 2d 6d 65 74 61 64 61 74 61 2d 65 6e - 74 72 79 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 2c 0a + ~ " x' add-hex-output-metadata-entry ," + 20 20 20 20 78 27 20 61 64 64 2d 68 65 78 2d 6f + 75 74 70 75 74 2d 6d 65 74 61 64 61 74 61 2d 65 + 6e 74 72 79 20 2c 0a ~ " ~ (output point, string pointer)" 20 20 20 20 7e 20 28 6f 75 74 70 75 74 20 70 6f @@ -99863,10 +99800,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -99951,10 +99887,9 @@ ~ " 1 ," 20 20 20 20 31 20 2c 0a - ~ " ' hex-pack-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 2d 74 - 72 61 63 65 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 2c 0a + ~ " x' hex-pack-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 2d + 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -99964,10 +99899,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -100055,10 +99989,9 @@ ~ " 2 ," 20 20 20 20 32 20 2c 0a - ~ " ' hex-pack-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 2d 74 - 72 61 63 65 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 2c 0a + ~ " x' hex-pack-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 2d + 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -100068,10 +100001,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -100159,10 +100091,9 @@ ~ " 4 ," 20 20 20 20 34 20 2c 0a - ~ " ' hex-pack-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 2d 74 - 72 61 63 65 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 2c 0a + ~ " x' hex-pack-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 2d + 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -100172,10 +100103,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -100263,10 +100193,9 @@ ~ " 8 ," 20 20 20 20 38 20 2c 0a - ~ " ' hex-pack-trace entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 70 61 63 6b 2d 74 - 72 61 63 65 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 2c 0a + ~ " x' hex-pack-trace ," + 20 20 20 20 78 27 20 68 65 78 2d 70 61 63 6b 2d + 74 72 61 63 65 20 2c 0a ~ " ~ Fall through to the inner implementation." 20 20 20 20 7e 20 46 61 6c 6c 20 74 68 72 6f 75 @@ -100276,10 +100205,9 @@ ~ "" 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 + 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -100323,10 +100251,8 @@ ~ " make-hidden" 20 20 6d 61 6b 65 2d 68 69 64 64 65 6e 0a - ~ " ' ] entry-to-execution-token execute" - 20 20 27 20 5d 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 + ~ " x' ] execute" + 20 20 78 27 20 5d 20 65 78 65 63 75 74 65 0a ~ " ;" 20 20 3b 0a @@ -101093,10 +101019,9 @@ 72 6f 6c 20 73 74 61 63 6b 20 61 6e 64 20 74 68 65 20 6c 6f 67 2e 0a - ~ " ' hex-trace entry-to-execution-token ," - 20 20 27 20 68 65 78 2d 74 72 61 63 65 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 2c 0a + ~ " x' hex-trace ," + 20 20 78 27 20 68 65 78 2d 74 72 61 63 65 20 2c + 0a ~ "" 0a @@ -101126,10 +101051,8 @@ 65 20 72 65 67 75 6c 61 72 20 73 65 6d 69 63 6f 6c 6f 6e 20 73 74 75 66 66 2e 0a - ~ " [ ' ; entry-to-execution-token , ]" - 20 20 5b 20 27 20 3b 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 2c 20 5d 0a + ~ " [ x' ; , ]" + 20 20 5b 20 78 27 20 3b 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -101206,10 +101129,8 @@ 20 20 20 20 68 65 72 65 20 40 20 38 20 70 61 63 6b 61 6c 69 67 6e 20 68 65 72 65 20 21 0a - ~ " [ ' ; entry-to-execution-token , ]" - 20 20 20 20 5b 20 27 20 3b 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 2c 20 5d 0a + ~ " [ x' ; , ]" + 20 20 20 20 5b 20 78 27 20 3b 20 2c 20 5d 0a ~ " exit" 20 20 20 20 65 78 69 74 0a @@ -101231,10 +101152,8 @@ 74 68 65 20 72 65 67 75 6c 61 72 20 62 65 68 61 76 69 6f 72 2e 0a - ~ " [ ' ;asm entry-to-execution-token , ]" - 20 20 5b 20 27 20 3b 61 73 6d 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 2c 20 5d 0a + ~ " [ x' ;asm , ]" + 20 20 5b 20 78 27 20 3b 61 73 6d 20 2c 20 5d 0a ~ " ; make-immediate" 20 20 3b 20 6d 61 6b 65 2d 69 6d 6d 65 64 69 61 @@ -101659,12 +101578,10 @@ ~ " drop" 20 20 20 20 20 20 64 72 6f 70 0a - ~ " ' hex-allocate-replacement entry-to-execution-token" - ~ " ," - 20 20 20 20 20 20 27 20 68 65 78 2d 61 6c 6c 6f - 63 61 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 - 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 2c 0a + ~ " x' hex-allocate-replacement ," + 20 20 20 20 20 20 78 27 20 68 65 78 2d 61 6c 6c + 6f 63 61 74 65 2d 72 65 70 6c 61 63 65 6d 65 6e + 74 20 2c 0a ~ " } {" 20 20 20 20 7d 20 7b 0a @@ -101954,12 +101871,10 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 30 78 30 31 20 26 20 7b 0a - ~ " ' hex-memory-slide-replacement entry-to-execution-token" - ~ " ," - 20 20 20 20 27 20 68 65 78 2d 6d 65 6d 6f 72 79 - 2d 73 6c 69 64 65 2d 72 65 70 6c 61 63 65 6d 65 - 6e 74 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 2c 0a + ~ " x' hex-memory-slide-replacement ," + 20 20 20 20 78 27 20 68 65 78 2d 6d 65 6d 6f 72 + 79 2d 73 6c 69 64 65 2d 72 65 70 6c 61 63 65 6d + 65 6e 74 20 2c 0a ~ " s" memcopy" find entry-to-execution-token ," 20 20 20 20 73 22 20 6d 65 6d 63 6f 70 79 22 20 @@ -101992,12 +101907,10 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 30 78 30 31 20 26 20 7b 0a - ~ " ' hex-memory-slide-replacement entry-to-execution-token" - ~ " ," - 20 20 20 20 27 20 68 65 78 2d 6d 65 6d 6f 72 79 - 2d 73 6c 69 64 65 2d 72 65 70 6c 61 63 65 6d 65 - 6e 74 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 2c 0a + ~ " x' hex-memory-slide-replacement ," + 20 20 20 20 78 27 20 68 65 78 2d 6d 65 6d 6f 72 + 79 2d 73 6c 69 64 65 2d 72 65 70 6c 61 63 65 6d + 65 6e 74 20 2c 0a ~ " s" memmove" find entry-to-execution-token ," 20 20 20 20 73 22 20 6d 65 6d 6d 6f 76 65 22 20 @@ -104483,11 +104396,10 @@ ~ "" 0a - ~ " ' hex-tilde-replacement entry-to-execution-token ," - 20 20 20 20 20 20 27 20 68 65 78 2d 74 69 6c 64 - 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 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 2c 0a + ~ " x' hex-tilde-replacement ," + 20 20 20 20 20 20 78 27 20 68 65 78 2d 74 69 6c + 64 65 2d 72 65 70 6c 61 63 65 6d 65 6e 74 20 2c + 0a ~ " } {" 20 20 20 20 7d 20 7b 0a @@ -105555,12 +105467,10 @@ ~ " drop" 20 20 20 20 20 20 64 72 6f 70 0a - ~ " ' hex-label-word-replacement entry-to-execution-token" - ~ " ," - 20 20 20 20 20 20 27 20 68 65 78 2d 6c 61 62 65 - 6c 2d 77 6f 72 64 2d 72 65 70 6c 61 63 65 6d 65 - 6e 74 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 2c 0a + ~ " x' hex-label-word-replacement ," + 20 20 20 20 20 20 78 27 20 68 65 78 2d 6c 61 62 + 65 6c 2d 77 6f 72 64 2d 72 65 70 6c 61 63 65 6d + 65 6e 74 20 2c 0a ~ " exit" 20 20 20 20 20 20 65 78 69 74 0a @@ -105580,13 +105490,10 @@ ~ " drop" 20 20 20 20 20 20 64 72 6f 70 0a - ~ " ' hex-log-load-word-replacement" - ~ " entry-to-execution-token ," - 20 20 20 20 20 20 27 20 68 65 78 2d 6c 6f 67 2d - 6c 6f 61 64 2d 77 6f 72 64 2d 72 65 70 6c 61 63 - 65 6d 65 6e 74 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 2c - 0a + ~ " x' hex-log-load-word-replacement ," + 20 20 20 20 20 20 78 27 20 68 65 78 2d 6c 6f 67 + 2d 6c 6f 61 64 2d 77 6f 72 64 2d 72 65 70 6c 61 + 63 65 6d 65 6e 74 20 2c 0a ~ " exit" 20 20 20 20 20 20 20 65 78 69 74 0a @@ -105762,11 +105669,10 @@ 20 20 69 6e 74 65 72 70 72 65 74 65 72 2d 66 6c 61 67 73 20 40 20 30 78 30 31 20 26 20 7b 0a - ~ " ' hex-interpret-replacement entry-to-execution-token ," - 20 20 20 20 27 20 68 65 78 2d 69 6e 74 65 72 70 - 72 65 74 2d 72 65 70 6c 61 63 65 6d 65 6e 74 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 2c 0a + ~ " x' hex-interpret-replacement ," + 20 20 20 20 78 27 20 68 65 78 2d 69 6e 74 65 72 + 70 72 65 74 2d 72 65 70 6c 61 63 65 6d 65 6e 74 + 20 2c 0a ~ " } {" 20 20 7d 20 7b 0a @@ -106832,10 +106738,9 @@ 20 61 20 6c 69 74 20 61 6c 74 65 72 6e 61 74 65 20 28 21 29 0a - ~ " ' lit entry-to-execution-token , ," - 20 20 20 20 20 20 27 20 6c 69 74 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 2c 20 2c 0a + ~ " x' lit , ," + 20 20 20 20 20 20 78 27 20 6c 69 74 20 2c 20 2c + 0a ~ " 0 exit" 20 20 20 20 20 20 30 20 65 78 69 74 0a @@ -112501,15 +112406,12 @@ ~ " swap literal" 20 20 73 77 61 70 20 6c 69 74 65 72 61 6c 0a - ~ " ' output-contents entry-to-execution-token ," - 20 20 27 20 6f 75 74 70 75 74 2d 63 6f 6e 74 65 - 6e 74 73 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 2c 0a + ~ " x' output-contents ," + 20 20 78 27 20 6f 75 74 70 75 74 2d 63 6f 6e 74 + 65 6e 74 73 20 2c 0a - ~ " ' exit entry-to-execution-token ," - 20 20 27 20 65 78 69 74 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 2c 0a + ~ " x' exit ," + 20 20 78 27 20 65 78 69 74 20 2c 0a ~ "" 0a @@ -113077,6 +112979,6 @@ ~ normal hex-dump stuff. 00 00 00 00 00 00 ~ (alignment padding) -~ label total-size at offset 0x00000000000ac9f0 is here. +~ label total-size at offset 0x00000000000ac400 is here. ~ This is the end of the hex dump. Thanks for reading! diff --git a/hello.e b/hello.e index 7728744..a19d076 100644 --- a/hello.e +++ b/hello.e @@ -31,6 +31,6 @@ current-offset L!' total-size ; -' all-contents entry-to-execution-token label-loop +x' all-contents label-loop 1 3unroll sys-write bye diff --git a/hex.e b/hex.e index feec78d..8a57383 100644 --- a/hex.e +++ b/hex.e @@ -303,6 +303,6 @@ ~ : This is the end of the hex dump. ; -' all-contents entry-to-execution-token label-loop +x' all-contents label-loop 1 3unroll sys-write bye diff --git a/language/dynamic/files.e b/language/dynamic/files.e index 71fb355..21d4096 100644 --- a/language/dynamic/files.e +++ b/language/dynamic/files.e @@ -133,7 +133,7 @@ ~ (metadata pointer) default-buffer-size over buffer-physical-length ! 0 over buffer-logical-length ! - ' refill-input-buffer-from-stream entry-to-execution-token + x' refill-input-buffer-from-stream swap input-buffer-refill ! ; diff --git a/language/dynamic/flow-control.e b/language/dynamic/flow-control.e index d4a9dd3..a8ebc3d 100644 --- a/language/dynamic/flow-control.e +++ b/language/dynamic/flow-control.e @@ -33,12 +33,12 @@ swap here @ swap here ! swap ~ (old here, length) - ' lit entry-to-execution-token , 0 , - ' != entry-to-execution-token , + x' lit , 0 , + x' != , ~ The branch length needs to be one word longer than the block length, ~ because the length field itself is part of the scope of the branch. - ' 0branch entry-to-execution-token , dup 8 + , + x' 0branch , dup 8 + , ~ (old here, length) drop 5 8 * + here ! @@ -53,11 +53,11 @@ ~ (start pointer, length) swap here @ swap here ! swap ~ (old here, length) - ' lit entry-to-execution-token , 0 , - ' = entry-to-execution-token , + x' lit , 0 , + x' = , ~ The branch length needs to be one word longer than the block length, ~ because the length field itself is part of the scope of the branch. - ' 0branch entry-to-execution-token , dup 8 + , + x' 0branch , dup 8 + , ~ (old here, length) drop 5 8 * + here ! ; make-immediate @@ -79,16 +79,16 @@ ~ Now we write out the initial test-and-branch. 4 roll dup 5 unroll here @ 6 unroll here ! ~ (old here, true start, true length, false start, false length) - ' lit entry-to-execution-token , 0 , - ' != entry-to-execution-token , + x' lit , 0 , + x' != , ~ Branch past the length field, the true-block, and the unconditional ~ branch in the middle. - ' 0branch entry-to-execution-token , + x' 0branch , 3roll dup 4 unroll 3 8 * + , ~ Next, write out the unconditional branch in the middle. swap dup 3unroll 5 8 * + here ! - ' branch entry-to-execution-token , + x' branch , ~ Branch past the length field and the false-block. dup 8 + , @@ -99,7 +99,7 @@ ~ (start, length --) : forever - ' branch entry-to-execution-token , 8 + -1 * , drop + x' branch , 8 + -1 * , drop ; make-immediate @@ -113,17 +113,17 @@ 2dup swap dup 5 8 * + 3roll memmove here @ 5 unroll swap dup 3unroll here ! ~ (old here, test start, test length, body start, body length) - ' lit entry-to-execution-token , 0 , - ' != entry-to-execution-token , + x' lit , 0 , + x' != , ~ Branch past the length field, the body, and the unconditional branch. - ' 0branch entry-to-execution-token , + x' 0branch , dup 3 8 * + , ~ Set "here" to the new end. 5 8 * 6 roll + here ! ~ (test start, test length, body start, body length) ~ Unconditionally branch backwards past the branch word, the body, the ~ conditional branch, and the test. - ' branch entry-to-execution-token , + x' branch , 6 8 * + swap drop + swap drop -1 * , ; make-immediate diff --git a/language/dynamic/interpret.e b/language/dynamic/interpret.e index ff35b62..6f91d4e 100644 --- a/language/dynamic/interpret.e +++ b/language/dynamic/interpret.e @@ -500,7 +500,7 @@ latest @ ~ Finicky semantics, but also important. : ." - ' s" entry-to-execution-token execute + x' s" execute interpreter-flags @ 1 & { [ s" emitstring" find literal ] ~ As with s", the magic comment is for completeness only. @@ -557,7 +557,7 @@ latest @ ~ ourselves are compiled, hardcoded; doing a dynamic lookup would ~ require dealing with what happens if it's not found. dropstring-with-result - ' lit entry-to-execution-token + x' lit , , exit } if diff --git a/language/dynamic/linux.e b/language/dynamic/linux.e index 680bdb4..2b3194d 100644 --- a/language/dynamic/linux.e +++ b/language/dynamic/linux.e @@ -339,7 +339,7 @@ dup sigaction-mask 0 swap ! dup sigaction-flags 0x04000000 swap ! dup sigaction-restorer - ' signal-return-trampoline entry-to-execution-token @ swap ! + x' signal-return-trampoline @ swap ! ~ (signal number, struct pointer) allocate-sigaction sys-sigaction drop ; @@ -348,7 +348,7 @@ : handle-crash ." CRASH" newline list-callers 1 sys-exit ; : install-crash-handler - ' handle-crash entry-to-execution-token wrap-signal-handler + x' handle-crash wrap-signal-handler 11 bind-signal ; ~ There are scenarios where someone might want to disable this, for example diff --git a/vim/syntax/evocation.vim b/vim/syntax/evocation.vim index 973f0c1..722f077 100644 --- a/vim/syntax/evocation.vim +++ b/vim/syntax/evocation.vim @@ -7,6 +7,7 @@ syn region evocationString start=_\(^\|\s\)\zs\."\ze\($\|\s\)_ end=_"_ syn match evocationColonWord "\(^\|\s\)\zs:\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zs'\s\+\S\+\ze\($\|\s\)" +syn match evocationTickWord "\(^\|\s\)\zsx'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL@'\s\+\S\+\ze\($\|\s\)" syn match evocationTickWord "\(^\|\s\)\zsL!'\s\+\S\+\ze\($\|\s\)" |