diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-09-09 02:16:04 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-09-09 02:25:03 -0700 |
| commit | bda3f24bb893d79c8d772025c45eb79495d0ad58 (patch) | |
| tree | c14c997e19caeeebedaf1efaec4dbdc0f21e6427 /README.txt | |
| parent | 157f657585bf536149effbc1a0a4f51b61a4ea35 (diff) | |
check in the hex binary and commented hex-dump
yes, wow, right? big milestone! doesn't work for evoke itself quite yet, but getting really close Force-Push: yes Change-Id: I1e836b85cf185db4aa835d2aa494a67585e60744
Diffstat (limited to 'README.txt')
| -rw-r--r-- | README.txt | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/README.txt b/README.txt index a6690e4..e3e12c1 100644 --- a/README.txt +++ b/README.txt @@ -193,22 +193,28 @@ than necessary; many of those bytes are used for error message strings, on the principle that it's very important that it be easy to distinguish a successful invocation of "hex" from a failed one. - When the hex transform is fully working, a copy of the compiled "hex" will -be checked into source control so that it can serve as the root of trust for -all Evocation builds. Meanwhile, you can compile it as follows: + Although the hex transform is not yet fully the compiled "hex" has proven +quite stable, and the hex transform does work on it. So, a copy of the +compiled "hex" is checked into source control so that it can serve as a root +of trust for future Evocation builds. For ease of auditing, a commented hex +dump version of this binary, produced via the hex transform, is also checked +in, as "hex.hex" (We heard you liked metacircularity, so we put some +metacircularity in your metacircularity so you can be metacircular while +you're metacircular.) + + If you need to compile "hex", you can do so as follows: $ cat labels.e elf.e hex.e | ./evoke > hex $ chmod 755 hex - Although the hex transform doesn't work, if you intend to play around with -this you may wish to know how to attempt to run it on things. You can run it -on hex.e as follows. (We heard you liked metacircularity, so we put some -metacircularity in your metacircularity so you can be metacircular while -you're metacircular.) + To produce the hex-dump version of it, do: $ (cat labels.e elf.e transform.e; echo 's" xyzzy" allocate-string dup 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 labels.e elf.e hex.e; echo 'xyzzy s" hex-source" variable 1024 1024 * allocate s" hex-binary" variable 1024 1024 * allocate s" hex-metadata" variable hex-metadata hex-binary dup hex-source 5 roll hex-transform bye ' ) | ./evoke > hex.hex - 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. + 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. |