]> Witch of Git - ivy/commit
Add runtime library and example assembly
authorCassie Jones <code@witchoflight.com>
Fri, 28 Feb 2020 20:39:37 +0000 (21:39 +0100)
committerCassie Jones <code@witchoflight.com>
Fri, 28 Feb 2020 20:55:58 +0000 (21:55 +0100)
commit3ddbeb0a17fc60b9af8482cd12d8e33da252a42b
tree3b3f63886c52cecd66557858b53f005f01d6766c
parent8c520577b6a1236df9374b4d4fe5dfdcde8941c6
Add runtime library and example assembly

This is further exploration into what the code could look time, but this
time there were productive results. This has a few parts:

- The runtime is written as Rust code! It's almost 100% unsafe code
  because I didn't want to think about safety boundaries with the
  assembly code that's outside the runtime. I can probably end up making
  almost all of it safe code with a little bit of work.

- The code mostly works by constructing lambdas with the runtime
  function, and then lambda bodies are mostly just applying objects to
  each other with the ivy_app function.

This sample program implements doing arithmetic on Church numerals, and
then uses it to run the debug print 64 times.
rt/.gitignore [new file with mode: 0644]
rt/Cargo.toml [new file with mode: 0644]
rt/example.s [new file with mode: 0644]
rt/src/lib.rs [new file with mode: 0644]