)]}'
{
  "commit": "fd04899a1ba74ad891f7f1127ba0952a0edb82bb",
  "tree": "2a2c5b1643f446ceec24e45c776554dbbaa14cd3",
  "parents": [
    "1e65f2c4368a0f43e0a54efd9ddf6fe0b8484161"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Thu Apr 18 14:59:47 2024 +0100"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Mon Apr 22 17:06:20 2024 +0100"
  },
  "message": "Add APIs for checking stack usage.\n\nThis makes it possible to dynamically check the maximum stack usage for\na compartment entry point in testing.  This is intended to be used in\nconjunction with CHERIoT-Platform/llvm-project#22, which makes it\npossible to specify the minimum stack size (enforced by the switcher).\n\nAlso expose the attribute via a macro and use it in the allocator.  The\nallocator parts demonstrate a recommended way of using the dynamic\nchecks: each allocator function has its stack usage recorded and, in\nrelease builds for the test suite, we make the compartment crash if it\nused more stack than it expected.  Adding more tests will make this more\nrobust.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "660447c1cb9ead6d98e8f23db511111fb0823592",
      "old_mode": 33188,
      "old_path": ".github/workflows/main.yml",
      "new_id": "736ca362ad3e0ff98b513ffce9982979ef08561c",
      "new_mode": 33188,
      "new_path": ".github/workflows/main.yml"
    },
    {
      "type": "modify",
      "old_id": "a032fd2d8829980b50cdabbbbe2e6089b1ac487c",
      "old_mode": 33188,
      "old_path": "sdk/core/allocator/alloc_config.h",
      "new_id": "522ed8a20d120e13940aa41f518ae78b746d4d1f",
      "new_mode": 33188,
      "new_path": "sdk/core/allocator/alloc_config.h"
    },
    {
      "type": "modify",
      "old_id": "a7364b6529176daf8d5fdd291dbc8313005aeece",
      "old_mode": 33188,
      "old_path": "sdk/core/allocator/main.cc",
      "new_id": "58b6ea192f174e3ac16fad023dcd0613830e8f97",
      "new_mode": 33188,
      "new_path": "sdk/core/allocator/main.cc"
    },
    {
      "type": "modify",
      "old_id": "93baf4a117ef8188b51fff23f9b459d81c8b3d8b",
      "old_mode": 33188,
      "old_path": "sdk/core/switcher/entry.S",
      "new_id": "13b65238ad52dcac24beb1589a70798288b18abf",
      "new_mode": 33188,
      "new_path": "sdk/core/switcher/entry.S"
    },
    {
      "type": "modify",
      "old_id": "b1f30dc730f2a1026f29475ab93e72e1de2f062a",
      "old_mode": 33188,
      "old_path": "sdk/include/cdefs.h",
      "new_id": "d7e87e6b0c4afabad586fe3ccb51a2bd0d572947",
      "new_mode": 33188,
      "new_path": "sdk/include/cdefs.h"
    },
    {
      "type": "modify",
      "old_id": "d107a78fcb44ab431f9c4f5547e007273afa91ff",
      "old_mode": 33188,
      "old_path": "sdk/include/debug.hh",
      "new_id": "a95470bb15d26eb50506c61eb509d20c73b477ab",
      "new_mode": 33188,
      "new_path": "sdk/include/debug.hh"
    },
    {
      "type": "modify",
      "old_id": "ad65a426aad6d1562a506e74762745a45ba9150a",
      "old_mode": 33188,
      "old_path": "sdk/include/switcher.h",
      "new_id": "a1088b6463857e3850c77ab961983c6acfd8d913",
      "new_mode": 33188,
      "new_path": "sdk/include/switcher.h"
    },
    {
      "type": "modify",
      "old_id": "fb74db44374777dd912fce2361ec16b4104551f3",
      "old_mode": 33188,
      "old_path": "sdk/xmake.lua",
      "new_id": "1d763bc08e68aba14eabdc40fccc3a8f3552ebe4",
      "new_mode": 33188,
      "new_path": "sdk/xmake.lua"
    },
    {
      "type": "modify",
      "old_id": "dcc7191f5bffc8be8ecd347d9b325f372141c757",
      "old_mode": 33188,
      "old_path": "tests/allocator-test.cc",
      "new_id": "2bf392649530cde0513c4dc119102f7626a81465",
      "new_mode": 33188,
      "new_path": "tests/allocator-test.cc"
    }
  ]
}
