)]}'
{
  "commit": "27a549cc1f83b223cf07e152f3e36681d5dd68fd",
  "tree": "d7fa59505187443087b8912e9b964378391b5354",
  "parents": [
    "2de5327bfac4c9bcde7a07960d6ae344b13075b2"
  ],
  "author": {
    "name": "msta",
    "email": "msta@google.com",
    "time": "Wed Jul 22 08:52:09 2026 +1000"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jul 21 22:51:40 2026 -0700"
  },
  "message": "Make EvalContext have interior mutability.\n\nThis significantly simplifies the API to use EvalContext, and means that\nwe can get rid of several unsafe APIs.\n\nWe still use UnsafeCell internally for EvalContext, but since we removed\nthe sync + send traits from EvalContext, EvalContext objects are now\nguarunteed by the compiler to be accessed single-threaded, so we don\u0027t need to\nworry about UnsafeCell actually being unsafe.\n\nBug: 528225104\nChange-Id: I397b6f108728267d33cf5d000ed6c9f66a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/24220\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fc98e275b5dcd30b3f0082770ea92d4c41c989f0",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/depset/src/depset.rs",
      "new_id": "db620f3f02e636fdb79da6e0139c1c0f91b56376",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/depset/src/depset.rs"
    },
    {
      "type": "modify",
      "old_id": "70c4c4712e5ec302a7ae7d8601692b8adbf37f96",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/depset/src/globals.rs",
      "new_id": "06dbc7fbba6c23906980ce7040e8efc52a990f80",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/depset/src/globals.rs"
    },
    {
      "type": "modify",
      "old_id": "b1487518172fa793fcb0913cd0fd7b0cdfb4d590",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/loader/src/loader.rs",
      "new_id": "607568919640e1171450d0a7f3c8d029fce6cd1f",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/loader/src/loader.rs"
    },
    {
      "type": "modify",
      "old_id": "cc6740c683a3cfe034920629371266a3aabcb2c3",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/assert.rs",
      "new_id": "cba6904ff39c95fa7ada367e5fff3436cb7806c7",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/assert.rs"
    },
    {
      "type": "modify",
      "old_id": "36c721c95fe7e2da55e263d7b7e0db1813599bbd",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/eval_context.rs",
      "new_id": "d43fcab0b07da9c2dbe75bec33b920820429fd4e",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/eval_context.rs"
    },
    {
      "type": "modify",
      "old_id": "da1fa2c1ecb8ceb4f016407614b7128df2c5a9fd",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/target.rs",
      "new_id": "94dcb2eaa2b0c481f9fb7840c6d858920a934ae5",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/target.rs"
    },
    {
      "type": "modify",
      "old_id": "73b8f87e8ce8f4a1b938c75f65d7ba870eab74d1",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/types/src/eval_context.rs",
      "new_id": "98863722836557d30a9734cf582c2b8c0fc91633",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/types/src/eval_context.rs"
    }
  ]
}
