)]}'
{
  "commit": "18df7cae0a9e92146da87e394f69ecacb8868440",
  "tree": "73c6f8ab8b3197769b117ced4b7f74682601c5c3",
  "parents": [
    "3e0eaf0926c779d0b6ce47fac05786281fa4c01a"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Fri May 10 12:44:11 2024 +0100"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Mon May 20 12:37:50 2024 +0100"
  },
  "message": "Make printf use the platform UART.\n\nFor historical reasons, this had its own hard-coded version of a 16550.\n\nDoing this required making the file C++.  At the same time, fix a load\nof style issue and replace a void* and function pointer with the\nfunction wrapper from the network stack.  This provides a type-erased\nway of calling a lambda, so we can clean up the code a bit.\n\nAlso remove ambient Uart access from this compartment and move the UART\naccess into the header.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50ca2489e19ec2afedfb05eb78753d8800b53935",
      "new_mode": 33188,
      "new_path": "sdk/include/function_wrapper.hh"
    },
    {
      "type": "modify",
      "old_id": "4d15320b6b6767ab2648d70693e43fb58e1d71c8",
      "old_mode": 33188,
      "old_path": "sdk/include/stdio.h",
      "new_id": "fd6b6054303438febd943e9fbcfb2360ac2c9859",
      "new_mode": 33188,
      "new_path": "sdk/include/stdio.h"
    },
    {
      "type": "delete",
      "old_id": "fc210a1e1bf3c6eb7c0132213cf8d54400e4bdd6",
      "old_mode": 33188,
      "old_path": "sdk/lib/stdio/printf.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8fc5f511aa77c6c61be13e0b71a5a8911d88e32d",
      "new_mode": 33188,
      "new_path": "sdk/lib/stdio/printf.cc"
    },
    {
      "type": "modify",
      "old_id": "01e39cc84f38366f62bd1b41ca8a91f26cc463ce",
      "old_mode": 33188,
      "old_path": "sdk/lib/stdio/xmake.lua",
      "new_id": "2596268b367481ebcacad0f0b5e0ee6c85e5a235",
      "new_mode": 33188,
      "new_path": "sdk/lib/stdio/xmake.lua"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a23aa0bdefb7942383b1a982d5e181af47ef3d28",
      "new_mode": 33188,
      "new_path": "tests/stdio-test.cc"
    },
    {
      "type": "modify",
      "old_id": "d96a8e053a7de4c842d9305a05c00d14cb94038e",
      "old_mode": 33188,
      "old_path": "tests/test-runner.cc",
      "new_id": "b59a8235423714518308b1d4d8d52723e924cdb5",
      "new_mode": 33188,
      "new_path": "tests/test-runner.cc"
    },
    {
      "type": "modify",
      "old_id": "4fec0704a0622c66161f9842be8ebbc26f1c35c3",
      "old_mode": 33188,
      "old_path": "tests/tests.hh",
      "new_id": "ffb71d04e77ea6a1c397549bd987dd8346672940",
      "new_mode": 33188,
      "new_path": "tests/tests.hh"
    },
    {
      "type": "modify",
      "old_id": "4cb7213d5bf8489c1e3826502b2cf87f3c2d71f1",
      "old_mode": 33188,
      "old_path": "tests/xmake.lua",
      "new_id": "48c294a86776bac1c38f0686c9fc80cb06eec594",
      "new_mode": 33188,
      "new_path": "tests/xmake.lua"
    }
  ]
}
