about summary refs log tree commit diff
path: root/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'README.txt')
-rw-r--r--README.txt20
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! :)