I had hoped to make a first release of i8c today but I still have one open issue so you’ll have to wait until next week. Until then here’s some note source for you to ponder:
define test::factorial returns int argument int x extern func int (int) factorial swap dup load 1 bne not_done_yet return not_done_yet: dup load 1 sub swap rot swap call mul
As hints I will a) point you at section 2.5 of the DWARF spec, and b) mention that argument
and extern
directives instruct the caller and runtime respectively to push entries onto the stack.
Your homework is to see how much of the language and runtime you can infer from this one function.
You may ask questions.