)]}'
{
  "commit": "edccf8448ecc393d077e94a7e1de2043555ce337",
  "tree": "9779eb386071c1e0e3b77e691e52c56174778ce1",
  "parents": [
    "bcbcc451d0aa91ecbd602a0c40f0cc508911c479"
  ],
  "author": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Sat Sep 26 14:32:11 2026 -0400"
  },
  "committer": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Mon Oct 05 18:24:48 2026 -0400"
  },
  "message": "starlark: clarify ownership of Call args, kwargs; fix min/max\n\nDocument the implied contract for the args and kwargs of Call and\nCallable.CallInternal: ownership passes to the callee, which may\nretain but not modify them, and the caller must not modify them\nafterwards.\n\nAn audit of all calls found one violation: min and max reused the\nargs tuple across calls to the key function, so a key function\nthat retained its args (e.g. a builtin returning it as a Tuple)\nwould see its earlier keys change, yielding the wrong answer.\nNow the tuple is reused only when the key function is a *Function.\n\nAlso, state explicitly that Tuples are immutable.\n\n+ test\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a561c52cf943e3068e3b634ed74a3726eae71f41",
      "old_mode": 33188,
      "old_path": "starlark/eval.go",
      "new_id": "4f36ea0fa35518e08d42236e7be7a7eb33f752a8",
      "new_mode": 33188,
      "new_path": "starlark/eval.go"
    },
    {
      "type": "modify",
      "old_id": "4843168638c351ffcf124bf15ee3d88d57de58b4",
      "old_mode": 33188,
      "old_path": "starlark/eval_test.go",
      "new_id": "b144b28c8692efa779b5c7ab1993a50532e5e4c3",
      "new_mode": 33188,
      "new_path": "starlark/eval_test.go"
    },
    {
      "type": "modify",
      "old_id": "2aabdfa5e2ebae9ab18a9b73e137951485a83942",
      "old_mode": 33188,
      "old_path": "starlark/interp.go",
      "new_id": "8f0b65469f9ca6cff24478a88ddb114d1a2f4dd3",
      "new_mode": 33188,
      "new_path": "starlark/interp.go"
    },
    {
      "type": "modify",
      "old_id": "bad18aff9ad61e226fc3e982adcea465a373dbbd",
      "old_mode": 33188,
      "old_path": "starlark/library.go",
      "new_id": "51e9ccba8b8cabb0d86b310276164044ed17518e",
      "new_mode": 33188,
      "new_path": "starlark/library.go"
    },
    {
      "type": "modify",
      "old_id": "8cc3b015f826f04512d8dffebfc4dd68d02b7bb4",
      "old_mode": 33188,
      "old_path": "starlark/value.go",
      "new_id": "07f1bd7b069dfe183223fa0590887d0ac3e8062c",
      "new_mode": 33188,
      "new_path": "starlark/value.go"
    }
  ]
}
