)]}'
{
  "commit": "8d404f9c76fdd2e139470a291b6c1825d114cc06",
  "tree": "8b181716569deb3db72791590596853015c78c80",
  "parents": [
    "62701a6d25a219bc37322e730cdab72f7520771d"
  ],
  "author": {
    "name": "Valentin Churavy",
    "email": "v.churavy@gmail.com",
    "time": "Fri Oct 02 09:19:02 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 06 08:34:58 2026 +0200"
  },
  "message": "Differentiate through inactive OpenMP threadprivate variables\n\n__kmpc_threadprivate_cached, which returns the calling thread\u0027s copy of\na threadprivate variable, was an unhandled OpenMP function. ICON\u0027s\ntimers (mo_real_timer) are threadprivate and started inside the\ndifferentiated step.\n\nThe copy is as active as the variable (ActivityAnalysis). For an\ninactive one the primal call is kept and its result taped when the\nreverse pass needs it; active threadprivate variables remain an error.\nThe call neither frees memory nor hands the program an allocation.\n\nAssisted-by: Claude Code (Opus 5.5)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2528c08c6ea8bc2ec91a96af83994e7fb21c189c",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/ActivityAnalysis.cpp",
      "new_id": "22a648ce389b2666a7692ed4d5cb69a504bef38d",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/ActivityAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "6c5ea46f6ce64b7965e767c46aec987c484bd26f",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/CallDerivatives.cpp",
      "new_id": "900e09415fe3070c5ea60e46b611261eb4fa6b72",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/CallDerivatives.cpp"
    },
    {
      "type": "modify",
      "old_id": "96485ee367d199e0ba6c71fcad8ed03e92e3fcc6",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/Utils.cpp",
      "new_id": "8c716ac5b0231f14f2b94a8386764d36d2c5f2b4",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/Utils.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b1c2303ef485f008ec875892176ff110659a44b",
      "new_mode": 33188,
      "new_path": "enzyme/test/Fortran/OpenMP/threadprivate_reverse.f90"
    }
  ]
}
