)]}'
{
  "commit": "c1446438884d701e83a63a7fffb83ad99e8ac0d8",
  "tree": "a603dc3f1aca3f125172345d544b833a7b9e73cb",
  "parents": [
    "b40646010121012b442a998766d76a617abd546c"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Thu Oct 03 17:10:27 2024 +0100"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Fri Oct 04 15:08:22 2024 +0100"
  },
  "message": "Don\u0027t invoke error handlers when the callee errors.\n\nI originally made a forced unwind out of a compartment invoke the\ncaller\u0027s error handler (if it existed) with a special error code.  The\nidea was that you could use error handlers to jump to recovery paths,\nrather than checking return values.\n\nThis seemed like a good idea at the time, but turned out to be a\nmistake.  The only code that has ever used this behaviour was the test\nsuite.  Other error handlers have special-case logic to check if this is\nthe reason and ignore it if so.  It also added a lot of confusing\ncontrol flow in the switcher, which is bad because the switcher is the\ncore of the TCB.\n\nFixes #302\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "80af18082c88f6aabe34ce83eef8868df1896cf2",
      "old_mode": 33188,
      "old_path": "sdk/core/switcher/entry.S",
      "new_id": "8ef9cca338e9b997f492707f68722afee4883f60",
      "new_mode": 33188,
      "new_path": "sdk/core/switcher/entry.S"
    },
    {
      "type": "modify",
      "old_id": "0511ac1c8708225c78beb346c7a1abb16d959ff5",
      "old_mode": 33188,
      "old_path": "sdk/core/switcher/trusted-stack-assembly.h",
      "new_id": "02fc2484efd15b7f33f49415d487f5460c4bfcb1",
      "new_mode": 33188,
      "new_path": "sdk/core/switcher/trusted-stack-assembly.h"
    },
    {
      "type": "modify",
      "old_id": "0875249285c961ef412f219f7addb8549e49eb04",
      "old_mode": 33188,
      "old_path": "sdk/core/switcher/tstack.h",
      "new_id": "45af06e45fa40857292c3f3d7fdb7fe2af743730",
      "new_mode": 33188,
      "new_path": "sdk/core/switcher/tstack.h"
    },
    {
      "type": "modify",
      "old_id": "07cf199472c6bc405883467337b18ae93bcd2874",
      "old_mode": 33188,
      "old_path": "sdk/include/errno.h",
      "new_id": "35aa19370257b1c73b522030fd496ca8d4cbab9f",
      "new_mode": 33188,
      "new_path": "sdk/include/errno.h"
    },
    {
      "type": "modify",
      "old_id": "da8f4eb3b790a789071d2de839acf41882813eaf",
      "old_mode": 33188,
      "old_path": "sdk/include/fail-simulator-on-error.h",
      "new_id": "d26dceb267a87bb879297a0c16e03cbe9ea5c9d6",
      "new_mode": 33188,
      "new_path": "sdk/include/fail-simulator-on-error.h"
    },
    {
      "type": "modify",
      "old_id": "c64eaac3d3964c5bbe1f098fb95f230f0a884333",
      "old_mode": 33188,
      "old_path": "tests/allocator-test.cc",
      "new_id": "97f19c9d89df30db514ce6f9b814bdfae4a701b2",
      "new_mode": 33188,
      "new_path": "tests/allocator-test.cc"
    },
    {
      "type": "modify",
      "old_id": "a678de8627b7adb921235fbab717ef015332ae42",
      "old_mode": 33188,
      "old_path": "tests/check_pointer-test.cc",
      "new_id": "c0791857a2f1ac98b571f728c328752df65be4e5",
      "new_mode": 33188,
      "new_path": "tests/check_pointer-test.cc"
    },
    {
      "type": "modify",
      "old_id": "68fa93f5677d62810f410ba36e38013e1bd95f0f",
      "old_mode": 33188,
      "old_path": "tests/compartment_calls-test.cc",
      "new_id": "2f0cff1cbec8f4a33d1cb9c98a78e26d561a43ad",
      "new_mode": 33188,
      "new_path": "tests/compartment_calls-test.cc"
    },
    {
      "type": "modify",
      "old_id": "a93c81d1bf7b18c94c814a6b50c103b82be3bad5",
      "old_mode": 33188,
      "old_path": "tests/compartment_calls.h",
      "new_id": "b740f317583cec1859d2ff6c3190992136e03586",
      "new_mode": 33188,
      "new_path": "tests/compartment_calls.h"
    },
    {
      "type": "delete",
      "old_id": "d82ca8fc4451bbe952082aebd9958edd60ab1f02",
      "old_mode": 33188,
      "old_path": "tests/compartment_calls_inner_with_handler.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "884c8d5ce6d1f56fd27741a82d91a5a34175aa74",
      "old_mode": 33188,
      "old_path": "tests/crash_recovery-test.cc",
      "new_id": "0254654c6187457514ec695164fe276467f27157",
      "new_mode": 33188,
      "new_path": "tests/crash_recovery-test.cc"
    },
    {
      "type": "modify",
      "old_id": "03c008c3bdcc92492851ba8c364bbafe9f542ac6",
      "old_mode": 33188,
      "old_path": "tests/debug-test.c",
      "new_id": "9be985465ad5192eeb6dc58e84e9fc3372a221da",
      "new_mode": 33188,
      "new_path": "tests/debug-test.c"
    },
    {
      "type": "modify",
      "old_id": "e44bb6501f8c8adbf8b4f7f10a00bc4cf79b2379",
      "old_mode": 33188,
      "old_path": "tests/debug-test.cc",
      "new_id": "5828f385bca2910b34b3d5859d87234b7b332615",
      "new_mode": 33188,
      "new_path": "tests/debug-test.cc"
    },
    {
      "type": "modify",
      "old_id": "aed68c1ee12f07b0b96fcd2596442a5a7156e0ab",
      "old_mode": 33188,
      "old_path": "tests/eventgroup-test.cc",
      "new_id": "12cebedeade44ec93f2ce609ad467ea55a4c0777",
      "new_mode": 33188,
      "new_path": "tests/eventgroup-test.cc"
    },
    {
      "type": "modify",
      "old_id": "970253f6f7ba741183410bf4be2d1728ca64e481",
      "old_mode": 33188,
      "old_path": "tests/futex-test.cc",
      "new_id": "4abfe6c0504330f113b9a7ccb959521f2180cc59",
      "new_mode": 33188,
      "new_path": "tests/futex-test.cc"
    },
    {
      "type": "modify",
      "old_id": "7db652ef90edf34d022bab12b0b659d325f0ca1c",
      "old_mode": 33188,
      "old_path": "tests/list-test.cc",
      "new_id": "5ea7700eea4ee76210fd7ce1677e280fb14edd34",
      "new_mode": 33188,
      "new_path": "tests/list-test.cc"
    },
    {
      "type": "modify",
      "old_id": "7b8db43f16b5fddc712165ac3b372c653fffec38",
      "old_mode": 33188,
      "old_path": "tests/locks-test.cc",
      "new_id": "d85fea2e1af01471037dce3cfbd88e1893d066c8",
      "new_mode": 33188,
      "new_path": "tests/locks-test.cc"
    },
    {
      "type": "modify",
      "old_id": "28352b179f219a141158dabf9ead43fe26d66728",
      "old_mode": 33188,
      "old_path": "tests/misc-test.cc",
      "new_id": "f537067826c95da9ef4aced86c205b4e816f71a6",
      "new_mode": 33188,
      "new_path": "tests/misc-test.cc"
    },
    {
      "type": "modify",
      "old_id": "4b090e58d55280ae00dd5cd19235bb6a8577ff1e",
      "old_mode": 33188,
      "old_path": "tests/mmio-test.cc",
      "new_id": "bfffdc180b5294c8fb979f58b3bd4a7a6df6fbb4",
      "new_mode": 33188,
      "new_path": "tests/mmio-test.cc"
    },
    {
      "type": "modify",
      "old_id": "b899be9fff51160dbdf77d827befdb5946342e5b",
      "old_mode": 33188,
      "old_path": "tests/multiwaiter-test.cc",
      "new_id": "d0f380f6badabaa49b2b3e32c47c36e0a33508c9",
      "new_mode": 33188,
      "new_path": "tests/multiwaiter-test.cc"
    },
    {
      "type": "modify",
      "old_id": "5239f1900c4fadfe16bc3e92ed7b4fe60ae909ff",
      "old_mode": 33188,
      "old_path": "tests/queue-test.cc",
      "new_id": "da18b8732247276baba8448955aca97accb0c0af",
      "new_mode": 33188,
      "new_path": "tests/queue-test.cc"
    },
    {
      "type": "modify",
      "old_id": "95659c07ade72227e290cfc0be545f0553b1e98d",
      "old_mode": 33188,
      "old_path": "tests/stack-test.cc",
      "new_id": "c814bf96b73781f371b0a760b6f1a3cfb92a3bbf",
      "new_mode": 33188,
      "new_path": "tests/stack-test.cc"
    },
    {
      "type": "modify",
      "old_id": "9730719c56ee233a872955b1f8fc45c37c9a0356",
      "old_mode": 33188,
      "old_path": "tests/static_sealing-test.cc",
      "new_id": "046d7045e98d77a0c79be436aff50792ece916a0",
      "new_mode": 33188,
      "new_path": "tests/static_sealing-test.cc"
    },
    {
      "type": "modify",
      "old_id": "a23aa0bdefb7942383b1a982d5e181af47ef3d28",
      "old_mode": 33188,
      "old_path": "tests/stdio-test.cc",
      "new_id": "b7f2ac231bfe47d69c39fabd700e5a1e4baaba06",
      "new_mode": 33188,
      "new_path": "tests/stdio-test.cc"
    },
    {
      "type": "modify",
      "old_id": "f5991563e8a3b37af7574ee0f9af5c91b6defaa2",
      "old_mode": 33188,
      "old_path": "tests/test-runner.cc",
      "new_id": "0c85f14c5ca63a48a7a6b8cd3013d7c9d0570eea",
      "new_mode": 33188,
      "new_path": "tests/test-runner.cc"
    },
    {
      "type": "modify",
      "old_id": "c805bde502980646db21996d70af3fa2d0941e76",
      "old_mode": 33188,
      "old_path": "tests/tests.hh",
      "new_id": "14780ed165b1333040dd732c5b32c92c26dd142a",
      "new_mode": 33188,
      "new_path": "tests/tests.hh"
    },
    {
      "type": "modify",
      "old_id": "4499d09848eddf3bba7d8fd65349d1440cb8a50f",
      "old_mode": 33188,
      "old_path": "tests/thread_pool-test.cc",
      "new_id": "52a08e000cb9c38fe04b56a4c64c5b2d55c393bb",
      "new_mode": 33188,
      "new_path": "tests/thread_pool-test.cc"
    },
    {
      "type": "modify",
      "old_id": "6cbf3902a7dc820d961989c39e29461e40e78cd3",
      "old_mode": 33188,
      "old_path": "tests/unwind_cleanup-test.cc",
      "new_id": "e368562d9aba6241112ba415dd332609004d9765",
      "new_mode": 33188,
      "new_path": "tests/unwind_cleanup-test.cc"
    },
    {
      "type": "modify",
      "old_id": "df7727b7dfb05d4d86e3c518caf7a363dc196dfd",
      "old_mode": 33188,
      "old_path": "tests/xmake.lua",
      "new_id": "7ecc6cb24e26372bbb0b569c2ed5716f92799a0a",
      "new_mode": 33188,
      "new_path": "tests/xmake.lua"
    }
  ]
}
