Skip to content

v0.9.0

Choose a tag to compare

@Arzaroth Arzaroth released this 04 Sep 00:12
· 93 commits to master since this release

Tier 5: no toolchain at all

The object module encoded as x86-64 and wrapped in a static ELF64
executable by hand. No llvmlite, no assembler, no linker, no libc: a
little over a kilobyte, two loadable segments, no section headers, and
write(2) and exit_group(2) are the only things it asks of the world.

The operand stack is the hardware stack, so a push is a push and register
allocation never comes up. Memory operands always take the SIB form with
a 32-bit displacement, which costs a few bytes and deletes every ModRM
special case. The canvas lives in .bss at a fixed address the prologue
puts in r15, so the text needs no relocation but its own branches.

This is the only backend tier that needs nothing installed, so a plain
python3 run now cross-checks four tiers instead of one.

LOC: 11494