)]}'
{
  "commit": "bb7a83ee06e6b0ded11d098e3364a66e0621ce5c",
  "tree": "279f91732b1a42b56da6a067d8d14ea131be357a",
  "parents": [
    "2bb9a54ddc3934ce2d21cce2a9d5b58fe115e3d1"
  ],
  "author": {
    "name": "bjacob",
    "email": "benoitjacob@google.com",
    "time": "Tue Jun 13 15:26:07 2023 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 13 19:26:07 2023 +0000"
  },
  "message": "Create empty files without unnecessary timestamp updates. (#14097)\n\nThis fixes the mysterious re-linking of `libIREECompiler` every time\r\nCMake was re-run. The problem was that `file(WRITE)` updates timestamps\r\nevery time, even if contents does not change. CMake documentation\r\nactually had a note about exactly this:\r\n\r\nhttps://cmake.org/cmake/help/latest/command/file.html#write\r\n\r\n\u003e If the file is a build input, use the\r\n[configure_file()](https://cmake.org/cmake/help/latest/command/configure_file.html#command:configure_file)\r\ncommand to update the file only when its content changes.\r\n\r\nFor the record, the tool that helped debug that was `ninja -d explain`.\r\nIt outputs things like:\r\n```\r\nninja explain: restat of output runtime/src/iree/builtins/ukernel/ukernel_bitcode.h older than most recent input runtime/src/iree/builtins/ukernel/arch/arm_64/ukernel_bitcode_arm_64.bc (1686679813375596068 vs 1686679898087480062)\r\n```",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/empty_file"
    },
    {
      "type": "modify",
      "old_id": "736ca4d6dfaae724d4ca81d6dfea0cb8daa51f5b",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_cc_binary.cmake",
      "new_id": "882b13b28954b1c833f81b92f8afb01e159d3db6",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_cc_binary.cmake"
    },
    {
      "type": "modify",
      "old_id": "2d8f6cf95cad8f2d0a38effbce546054a5c04f6f",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_macros.cmake",
      "new_id": "a2e7dc768acaaa7d05ea88b6c432bb280d2e276a",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_macros.cmake"
    },
    {
      "type": "modify",
      "old_id": "82a49e5bfbf18ee5e3982d1f13affca672a4f008",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/BUILD.bazel",
      "new_id": "185d658a101dde52fd01511d046570f62e80af3e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8926eaa756b28b6f3d2493ae271d39f51df5ac37",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/CMakeLists.txt",
      "new_id": "dba2b2e58004dc578c7f3d6346833254c9af6a53",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "dc060ba75a1da907fbb8002e8357aefa7a83132d",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/BUILD.bazel",
      "new_id": "739d12b836645e43e65ad2d62636b8b20761b653",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "f4ed4c5a2f0f907db55cf66b59fb1936e73fe187",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/CMakeLists.txt",
      "new_id": "3de1dc427cdc97c1d4b342ccb3e336208d3e565e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/CMakeLists.txt"
    }
  ]
}
