diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-09-10 03:02:43 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-09-10 03:02:43 -0700 |
| commit | a46d5888321d859ed5c6698292fda45fd2633497 (patch) | |
| tree | 942c4bf6d4f990eca6fbeb700f91cb4c7852ef8d /README.txt | |
| parent | e2362acc76e4b689efe50ca7da40867336efd53c (diff) | |
status update in the README! an important one :)
Force-Push: yes Change-Id: Ia929bd55a0cec2781a4166dad4c7797fd2cb1b9d
Diffstat (limited to 'README.txt')
| -rw-r--r-- | README.txt | 31 |
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! :) |