]> Witch of Git - ivy/commit
Add memory layout docs and assembly experiments
authorCassie Jones <code@witchoflight.com>
Fri, 28 Feb 2020 20:03:07 +0000 (21:03 +0100)
committerCassie Jones <code@witchoflight.com>
Fri, 28 Feb 2020 20:19:42 +0000 (21:19 +0100)
commit03b123a041d2191f8723018e099c11553fba7e4a
treef759e8b2d79f7512a9c4909adba380b5595c194a
parentde51967e4fc53d78966daaef3c99aabbfcb723e4
Add memory layout docs and assembly experiments

My goal was to figure out how I intended to compile the language by
writing the assembly myself and figuring out the format of all the
objects. I pretty quickly realized that lots of this belongs as runtime
routines rather than sequences the compiler outputs, for things like
creating closures, allocating objects, etc.

What you see here is in a sort of mixed-up state because it started out
by making raw system calls (so allocate and free were more involved),
but is now set up to call into system calls via libSystem.dylib. It
doesn't do anything interesting right now, it was just set up to learn
some things.

Most of the code here is implementing type-checking for the tagged
pointer + 63-bit integer scheme, which is inspired by OCaml. The
specific object layouts are described in docs/object-layout.md.
docs/example.s [new file with mode: 0644]
docs/object-layout.md [new file with mode: 0644]