proj-oot-ootLovmThoughts

opaque activation records but primitives provided to manipulate them arbitrarily including to get a pointer to the current opaque activation record and its size, so that it may be copied opaque stack layout but primitives provided to manipulate it arbitrarily opaque calling convention

you can ask the implementation for the location and length of activations records (so that you can copy them to save/restore, move them between the stack and the heap, etc), allocation new activation records, 'activate' an activation record, etc

I guess a way to abstract the frame pointer is providing an instruction that can tell you a (pointer to the caller's activation record, the return address)

structured programing with CALL, TAILCALL, GETLOCAL, SETLOCAL, etc

---

"Executable files include four canonical sections called, by convention, .text, .data, .rodata, and .bss." -- Special sections in Linux binaries

---

New LOVM registers above 32 can be banked

---

WREN-like classes, plus our polymorphism

---

there's two basic encoding ideas: 5 fields of 12 bits (8 bit operand data and 4 bit addr mode? 9 bits of op data and 3 bit addr mode?), or 4 fields of 15 bits (12 bit op data and 3 bit addr mode?)

could also have both of these (ie multiple instruction formats, determined by the opcode field)

---