)]}'
{
  "commit": "7138b9eef4500945bc00f78b3bff0dedfff2a4a2",
  "tree": "172d708b089aa4e72707810510109fd6c4e209dd",
  "parents": [
    "d1b87682d0decf0ac99e2d95642dae926b84d835"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Fri Nov 24 15:44:17 2023 +0000"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Thu Nov 30 17:34:08 2023 +0000"
  },
  "message": "Remove message queues and semaphores from the scheduler.\n\nMessage queues are now provided by a shared library (for communication\nwithin a compartment) and a compartment (for communication between\nmutually distrusting compartments).  The version in the library can also\nbe used between compartments with some care.\n\nAlong the way:\n\n - Allow LockGuard to work nicely with timeouts.\n - Make the C11/C++11 atomics sufficiently complete that we can claim to\n   support them.\n - Allow check_pointer to skip the stack tests, for use in shared\n   libraries.\n\nThe multiwaiter can still be used with message queues, but requires a\ncall to set up the wait object.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e8ba0f9dad410b392ea1d3f4a75a13035ef8ce0",
      "old_mode": 33188,
      "old_path": "examples/06.producer-consumer/consumer.cc",
      "new_id": "203317e54257bab9cf83ac1525716b6dc7e7d001",
      "new_mode": 33188,
      "new_path": "examples/06.producer-consumer/consumer.cc"
    },
    {
      "type": "modify",
      "old_id": "54adb8fef35f7b92fd8f19e1975e06b806d4fbb9",
      "old_mode": 33188,
      "old_path": "examples/06.producer-consumer/consumer.h",
      "new_id": "03e875e60d574d79394ba1fd5f69a3511dbefe1d",
      "new_mode": 33188,
      "new_path": "examples/06.producer-consumer/consumer.h"
    },
    {
      "type": "modify",
      "old_id": "6b2a816ff40dd9dc6cb250fd5bd0542ff470f143",
      "old_mode": 33188,
      "old_path": "examples/06.producer-consumer/producer.cc",
      "new_id": "a4ea318ac319b816fe3847422b90a8a4b4204f56",
      "new_mode": 33188,
      "new_path": "examples/06.producer-consumer/producer.cc"
    },
    {
      "type": "modify",
      "old_id": "c5d664204bce4f8b0e25be4497bb58c225ab6181",
      "old_mode": 33188,
      "old_path": "examples/06.producer-consumer/xmake.lua",
      "new_id": "fb9e7cac4b32fb29846a9ba0fa2137681f1ff0b8",
      "new_mode": 33188,
      "new_path": "examples/06.producer-consumer/xmake.lua"
    },
    {
      "type": "modify",
      "old_id": "c6742965fee8a2ca084811812df67303a5b41ac7",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/main.cc",
      "new_id": "4f8007b44534f3b7087bcf7a253f9d172fb9c62f",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/main.cc"
    },
    {
      "type": "modify",
      "old_id": "49462e2ab4ab61ea2defc56d791d6b1ca53bf961",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/multiwait.h",
      "new_id": "26cbf54b9af2fb266cc5d357341d645257d7745f",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/multiwait.h"
    },
    {
      "type": "delete",
      "old_id": "56468a697797a8cb69d6d79af59a9b7652e5913a",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/queue.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "e432c1714cecb4cc4d92c1750542a9319e6a2d1c",
      "old_mode": 33188,
      "old_path": "sdk/core/scheduler/thread.h",
      "new_id": "c85d298a455d0847184e867c55ea862be547fa82",
      "new_mode": 33188,
      "new_path": "sdk/core/scheduler/thread.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "412f09e96ec76d67bed159c7e17b51db0ae742bd",
      "new_mode": 33188,
      "new_path": "sdk/include/c++-config/atomic"
    },
    {
      "type": "modify",
      "old_id": "54a3962aec27032633738b5839a0d3d04abc5f57",
      "old_mode": 33188,
      "old_path": "sdk/include/c++-config/cheriot-atomic.hh",
      "new_id": "64531666a74e55b455f2b2ff0039a39cf82441be",
      "new_mode": 33188,
      "new_path": "sdk/include/c++-config/cheriot-atomic.hh"
    },
    {
      "type": "modify",
      "old_id": "5a26bbcd01992e1a6a0b232667f744af4bfaa1f0",
      "old_mode": 33188,
      "old_path": "sdk/include/cheri.hh",
      "new_id": "573a9032ffd1cbb1c13ab113b88172bdbfd22d51",
      "new_mode": 33188,
      "new_path": "sdk/include/cheri.hh"
    },
    {
      "type": "delete",
      "old_id": "0f6aee83ce824df5aa26c0f2ad145c1863014a98",
      "old_mode": 33188,
      "old_path": "sdk/include/libc++/atomic",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9757a98a7d151aab98b2903855c59a74d9410872",
      "old_mode": 33188,
      "old_path": "sdk/include/locks.hh",
      "new_id": "a89d4b750b541166eb47ee4f0b67bce26cd5c71b",
      "new_mode": 33188,
      "new_path": "sdk/include/locks.hh"
    },
    {
      "type": "modify",
      "old_id": "7830b526b8bc1ffb71a91a57590a13f93452bcfd",
      "old_mode": 33188,
      "old_path": "sdk/include/multiwaiter.h",
      "new_id": "418228cb446d9c4012d2a859af2ec1d994137a62",
      "new_mode": 33188,
      "new_path": "sdk/include/multiwaiter.h"
    },
    {
      "type": "modify",
      "old_id": "1fa2933d8658dd275d1383bb2d7d078e2c8fad73",
      "old_mode": 33188,
      "old_path": "sdk/include/queue.h",
      "new_id": "162f91c91dd036531e7e24034a010c44f5b86102",
      "new_mode": 33188,
      "new_path": "sdk/include/queue.h"
    },
    {
      "type": "delete",
      "old_id": "3e60d96e45f422c21e86bbcc91de3df6865d6b97",
      "old_mode": 33188,
      "old_path": "sdk/include/semaphore.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04cd22240a39118c0b092cd43147ad5e24d29e9b",
      "new_mode": 33188,
      "new_path": "sdk/include/stdatomic.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62f217997440ebcd264c5d1a7bd73ecbf62447a2",
      "new_mode": 33188,
      "new_path": "sdk/lib/queue/queue.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b2d5bc7e50c1cb8f8f0e4ce8bd590be4b57b0da1",
      "new_mode": 33188,
      "new_path": "sdk/lib/queue/queue_compartment.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f44ea6c5939d3b5082155addf99b09b9071d708",
      "new_mode": 33188,
      "new_path": "sdk/lib/queue/xmake.lua"
    },
    {
      "type": "modify",
      "old_id": "dc3b6d0e9bae99cf621b9b6ec01ec770f1292e21",
      "old_mode": 33188,
      "old_path": "tests/ccompile-test.c",
      "new_id": "f71202893342249008287ad1f24668a45458e8e0",
      "new_mode": 33188,
      "new_path": "tests/ccompile-test.c"
    },
    {
      "type": "modify",
      "old_id": "f4ec5163b525430f2f9b63d5fe0ea9e9cc05809a",
      "old_mode": 33188,
      "old_path": "tests/multiwaiter-test.cc",
      "new_id": "f55929583df25a5d516fd559a2b271443eb5e6a1",
      "new_mode": 33188,
      "new_path": "tests/multiwaiter-test.cc"
    },
    {
      "type": "modify",
      "old_id": "87ba14a30b4e6596b4765f5b332d4f4e17bc36da",
      "old_mode": 33188,
      "old_path": "tests/queue-test.cc",
      "new_id": "869798ffa21364f7fa220504b9e7c2cb2ba239f4",
      "new_mode": 33188,
      "new_path": "tests/queue-test.cc"
    },
    {
      "type": "modify",
      "old_id": "243827e6635cadb11bf57b04ac2cef074d7a5d0a",
      "old_mode": 33188,
      "old_path": "tests/xmake.lua",
      "new_id": "e988c332d1b5e9cc8e8fd2acdce0ac0eac9433f0",
      "new_mode": 33188,
      "new_path": "tests/xmake.lua"
    }
  ]
}
