)]}'
{
  "commit": "9673115bc14c8630da5b7f6fe07e0b362ac49dcb",
  "tree": "91c5d4ca1424da4c71ec84f3780820903410f5b3",
  "parents": [
    "5550ba0f4053c3cbb0bff3d60ded9d867b6fa371"
  ],
  "author": {
    "name": "Greg Thompson",
    "email": "grt@chromium.org",
    "time": "Mon Dec 22 12:52:51 2025 +0100"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Jan 10 00:21:34 2026 -0800"
  },
  "message": "Improve writing runtime deps\n\n- Due to a bug, the `found_files` set was never actually used to omit\n  duplicate deps. Since this apparently has never been an issue in\n  practice, remove the set and mention of it from comments.\n- Use a std::unordered_map for `seen_targets` to trade memory for speed.\n- Avoid a redundant lookup in `seen_targets` when a target is already\n  present.\n- Use emplace facilities in favor of copy/move where appropriate.\n- When calling WriteRuntimeDepsFile, stream the deps directly to the\n  output buffer rather than accumulating them in a vector and then\n  writing from the vector into the output buffer.\n- Parallelize collecting/writing the runtime deps files.\n\nThis reduces overall runtime by about 9% on my workstation.\n\nChange-Id: Ic5a10415348345a6f9473613b4391281d9e20605\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/20700\nCommit-Queue: Greg Thompson \u003cgrt@chromium.org\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@google.com\u003e\nReviewed-by: Sylvain Defresne \u003csdefresne@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "652c3e3d1d268a160f1444756e2a22cb110e6bac",
      "old_mode": 33188,
      "old_path": "src/gn/command_gen.cc",
      "new_id": "75004e52bee45540f610908cb18441b290d8ffa5",
      "new_mode": 33188,
      "new_path": "src/gn/command_gen.cc"
    },
    {
      "type": "modify",
      "old_id": "546d63e368b42c2b37e2afbc542236525b1721b6",
      "old_mode": 33188,
      "old_path": "src/gn/runtime_deps.cc",
      "new_id": "abedb848e5184e37c8394c85e6f9e033d24ed976",
      "new_mode": 33188,
      "new_path": "src/gn/runtime_deps.cc"
    },
    {
      "type": "modify",
      "old_id": "82e0f10cbe9a27541101dab7698ec34c339d8822",
      "old_mode": 33188,
      "old_path": "src/gn/runtime_deps.h",
      "new_id": "5ff088360fde2970b8219c83b53d6d1ae632a7c2",
      "new_mode": 33188,
      "new_path": "src/gn/runtime_deps.h"
    }
  ]
}
