summary refs log tree commit diff
path: root/README.txt
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-09-10 03:02:43 -0700
committerIrene Knapp <ireneista@irenes.space>2026-09-10 03:02:43 -0700
commita46d5888321d859ed5c6698292fda45fd2633497 (patch)
tree942c4bf6d4f990eca6fbeb700f91cb4c7852ef8d /README.txt
parente2362acc76e4b689efe50ca7da40867336efd53c (diff)
status update in the README! an important one :)
Force-Push: yes
Change-Id: Ia929bd55a0cec2781a4166dad4c7797fd2cb1b9d
Diffstat (limited to 'README.txt')
-rw-r--r--README.txt31
1 files changed, 16 insertions, 15 deletions
diff --git a/README.txt b/README.txt
index 4471530..c03533c 100644
--- a/README.txt
+++ b/README.txt
@@ -218,21 +218,22 @@ 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 2 * * 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 should run to completion, producing output, but the output has various
-problems such as underflowing the substring-entry stack, displaying assembly
-parameters in the wrong order, having insufficient explanation of label
-references and definitions, and so on. It also takes several minutes to run,
-which Irenes believe is because of the use of linked lists rather than hash
-tables for the various dictionaries. Adding a hash table is a task to do after
-bootstrapping is complete, but the rest of that is fixable now, and should
-likely be the focus of any development efforts.
-
-  In perusing the output, 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.
+  It should run to completion, producing output. The output is even correct in
+the sense that passing evoke.hex through ./hex will give a binary that's
+byte-for-byte identical to evoke, but the output has various problems such as
+displaying assembly parameters in the wrong order, having insufficient
+explanation of label references and definitions, not showing dictionary entry
+headers in any special way, and so on. All these cosmetic issues should be
+fixable now, and should likely be the focus of any development efforts.
+
+  It also takes several minutes to run, which Irenes believe is because of the
+use of linked lists rather than hash tables for the various dictionaries.
+Adding a hash table is a task to do after bootstrapping is complete.
+
+  Nearly all of this runtime is attributable to the log-load transform; if
+you're working on something that doesn't involve the log-load transform, you
+may find it useful to temporarily comment out the call to log-load-transform
+in execution.e, replacing it with two invocations of drop.
 
   Now get debugging! :)