)]}'
{
  "commit": "3169175f4e8c9f75057c77d7d63dc841e3036df2",
  "tree": "043a8449c3dc1c7ecb4b2599db4a5dfe8d257131",
  "parents": [
    "dab5817bcf2b0f9db645bbba5cc6f9c71e9c0e38"
  ],
  "author": {
    "name": "Johnathan Van Why",
    "email": "jrvanwhy@google.com",
    "time": "Fri Feb 05 17:02:32 2021 -0800"
  },
  "committer": {
    "name": "Johnathan Van Why",
    "email": "jrvanwhy@google.com",
    "time": "Fri Feb 05 17:42:08 2021 -0800"
  },
  "message": "Add `libtock_runtime` startup code.\n\nThis includes:\n\n1. `rust_start`: The first Rust code to run in a process\n1. `set_main!`: Used to specify `main` in a process binary\n1. `stack_size!`: Used to specify the stack size in a process binary\n1. Documentation of the startup sequence, including the 3 above steps.\n\nThe documentation refers to a two things that haven\u0027t been implemented yet:\n1. Debug syscalls performed by `rust_start` -- unimplemented because `memop` is\n   still unimplemented.\n1. The `exit` system call.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b0daf037fd258e11305ef6b2fb71e59c8d66833b",
      "old_mode": 33188,
      "old_path": "core/runtime/src/lib.rs",
      "new_id": "7e2e1ca1072c1954d4033f134c2b35a2dca1d309",
      "new_mode": 33188,
      "new_path": "core/runtime/src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f99d40232866475fcb74b78f2ee29f2558fc5ad4",
      "new_mode": 33188,
      "new_path": "core/runtime/src/startup.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e7c0502dcad8065f174610e81cbaaad34b9735e",
      "new_mode": 33188,
      "new_path": "doc/Startup.md"
    }
  ]
}
