diff options
Diffstat (limited to 'README.txt')
| -rw-r--r-- | README.txt | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/README.txt b/README.txt index e3e12c1..384c8f9 100644 --- a/README.txt +++ b/README.txt @@ -213,8 +213,20 @@ you're metacircular.) Although the hex transform doesn't yet work on Forth programs (only programs written in Evocation-assembly), if you intend to play around with this you may -wish to know how to attempt to run it on things. There is not yet a -recommended way to run the hex transform on evoke.e, but when there is it will -look like appending most of the Evocation-in-Evocation build steps to the -hex.hex build steps, swapping them in where hex.e is now. +wish to know how to attempt to run it on things. The latest draft way to do +that is: + + $ (cat labels.e elf.e transform.e; echo 's" xyzzy" allocate-string dup 1048576 read-to-buffer'; cat core.e linux.e output.e amd64.e execution-support.e log-load.e dynamic.e input.e interpret.e flow-control.e linux-dynamic.e labels.e elf.e transform.e execution.e; echo 's" pyrzqxgl" allocate-string dup 262144 read-to-buffer '; cat core.e linux.e output.e amd64.e execution-support.e log-load.e; echo pyrzqxgl swap 262144 read-to-buffer; cat core.e linux.e output.e amd64.e execution-support.e log-load.e dynamic.e input.e interpret.e flow-control.e linux-dynamic.e; echo pyrzqxgl; cat evoke.e; echo 'xyzzy s" evoke-source" variable 1024 1024 * allocate s" evoke-binary" variable 1024 1024 * allocate s" evoke-metadata" variable evoke-metadata evoke-binary dup evoke-source 5 roll hex-transform bye ' ) | ./evoke > evoke.hex + + It will likely crash somewhere inside label-loop. You may find it helpful +to modify transform.e's definition of hex-sys-write-replacement by adding +the words "sys-write" and "exit" at the start of it, thereby turning it off +and allowing crash dumps to print. + + It's worth understanding that, although the log-load transform's output +comes first in the executable, it conceptually depends on the label transform, +and is unlikely to get anywhere until that's complete. For development +purposes, it may make sense to comment out the call to output-warm-start in +evoke.e and set a placeholder value for the warm-start label. Now running it +will cause failure somewhere inside the log-load transform; get debugging! :) |