~ cat labels.e elf.e execution.e transform.e evoke.e \ ~ | ./quine > evoke && chmod 755 evoke && ./evoke 1024 read-to-buffer ~ Any word that ends with a normal semicolon will require this, so its ~ definition has to be near the start. : exit [ here @ :rsi pack-popcontrol here ! ] ;asm : lit [ here @ lods64 :rax push-reg64 here ! ] ;asm : sys-exit [ here @ 60 :rax mov-reg64-imm64 :rdi pop-reg64 syscall hlt here ! ] ;asm : happy-path 42 sys-exit ; ~ : lods64 ; ~ : :rax ; ~ : push-reg64 ; ~ : mov-reg64-imm64 ; ~ : :rdi ; ~ : pop-reg64 ; ~ : syscall ; ~ : hlt ; ~ : here ; ~ : @ ; ~ : ! ; ~ : [ ; ~ : ] ; pyrzqxgl s" source-to-precompile" variable ~ (output memory start, current output point ~ -- output memory start, current output point) ~ (output memory start, current output point ~ -- output memory start, current output point) ~ ~ Everything directly called by all-contents has this same interface. ~ : all-contents 0x08000000 L!' origin elf-file-header elf-program-header cold-start warm-start output-docol source-to-precompile transform 0 L!' final-word-name current-offset L!' total-size 0 L!' : 0 L!' ; 0 L!' ;asm ; ' all-contents entry-to-execution-token label-loop swap sys-write bye