~ echo 's" evoke.e" enchant' | ./evoke > evoke2 && chmod 755 evoke2 ~ echo 's" evoke.e" inscribe' | ./evoke > evoke.hex ~ (output memory start, current output point ~ -- output memory start, current output point) : compile-header ~ : This particular program is 'evoke', the compiler. If you already have ~ : a binary copy of 'hex', run this file through it and you'll have a ~ : working compiler. Pretty sweet, right? ~ : ~ : If you're auditing this by hand, first off, thank you for doing that. ~ : You may wish to pull up the source code side-by-side with the hex dump; ~ : there's a lot of structural stuff in the actual source that aids in ~ : readability but isn't easily reproduced in this form, though every ~ : effort has been made. ~ : blank-line 0x08000000 L!' origin ; ~ (output memory start, current output point ~ -- output memory start, current output point) : compile-footer ~ If we wanted words in the log to be able to call statically-linked ~ words, we could set this to something nonzero. We don't, so we leave it ~ alone. 0 L!' final-word-name current-offset L!' total-size 0 L!' : 0 L!' ; 0 L!' ;asm ~ : blank-line ~ : This is the end of the hex dump. Thanks for reading! ; : define-compilation allocate-compilation-definition ~ (definition) [ current-input-file-name literal-string ] over compilation-definition-top-level-filename ! here @ dup s" language/static/core.e" packstring s" language/static/linux.e" packstring s" language/static/output.e" packstring s" language/static/amd64.e" packstring s" language/static/execution-support.e" packstring s" language/static/log-load.e" packstring 0 pack8 8 packalign here ! over compilation-definition-static-filenames ! here @ dup s" language/dynamic/dynamic.e" packstring s" language/dynamic/input.e" packstring s" language/dynamic/interpret.e" packstring s" language/dynamic/flow-control.e" packstring s" language/dynamic/linux.e" packstring s" language/dynamic/files.e" packstring s" language/dynamic/command-line.e" packstring 0 pack8 8 packalign here ! over compilation-definition-dynamic-filenames ! here @ dup s" compilation/labels.e" packstring s" compilation/elf.e" packstring s" compilation/transform.e" packstring s" compilation/execution.e" packstring s" compilation/top-level.e" packstring s" language/boot-source-footer.e" packstring 0 pack8 8 packalign here ! over compilation-definition-boot-filenames ! x' compile-header over compilation-definition-compile-header ! x' compile-footer over compilation-definition-compile-footer ! s" evoke-executable-data" variable ; define-compilation : latest-executable-data evoke-executable-data ;