)]}'
{
  "commit": "38ff67c197654e7d1baa8d9735da314d5834cf83",
  "tree": "6ab52f41c066f40e3c89f5e2276e86a0f87461e3",
  "parents": [
    "c82958326a663f083cc122cfd8aaa5116e1cd798"
  ],
  "author": {
    "name": "qmuntal",
    "email": "quimmuntal@gmail.com",
    "time": "Fri Jun 05 14:25:05 2026 +0200"
  },
  "committer": {
    "name": "Quim Muntal",
    "email": "quimmuntal@gmail.com",
    "time": "Fri Jun 12 01:01:00 2026 -0700"
  },
  "message": "cmd/go/internal/load: use file path prefix check for GOROOT dirs\n\nWhen loading package data in module mode, loadPackageData tries to\ndetect whether a resolved directory is under GOROOT/src so it can use\nthe package index for standard-library packages. That check used\nstr.HasPathPrefix, which is for slash-separated import paths. On\nWindows, r.dir and cfg.GOROOTsrc are filesystem paths using backslashes,\nso the check failed and standard-library package loads fell back to\ngo/build.ImportDir.\n\nUse str.HasFilePathPrefix for those filesystem path checks. This lets\nWindows use the package index for GOROOT package loads instead of\nreopening standard library source files.\n\nMeasured on windows/arm64 with:\n\n    go list -e -compiled\u003dtrue -test\u003dtrue -export\u003dfalse -deps\u003dtrue -find\u003dfalse -pgo\u003doff ./...\n\nafter the separate go list -compiled optimization, this reduced runtime\nfrom about 690 ms to about 424 ms, a 39% improvement.\n\nA gofsystrace run on the same command showed source-file opens dropping\nfrom 1258 to 5.\n\nFor #75238.\n\nChange-Id: I34a9faa846516726f80f5d12bb8ac374e0fe99a0\nReviewed-on: https://go-review.googlesource.com/c/go/+/787340\nReviewed-by: Michael Matloob \u003cmatloob@golang.org\u003e\nReviewed-by: Alex Brainman \u003calex.brainman@gmail.com\u003e\nReviewed-by: Ian Alexander \u003cjitsu@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a2adcf4bf7c65ccb1c13894532406dd2df83a17",
      "old_mode": 33188,
      "old_path": "src/cmd/go/internal/load/pkg.go",
      "new_id": "2985cff67cec0bde02e247f2e28cf1a72b60ad87",
      "new_mode": 33188,
      "new_path": "src/cmd/go/internal/load/pkg.go"
    },
    {
      "type": "modify",
      "old_id": "a31e09d233209cd1aff1147680bf246f67a17e36",
      "old_mode": 33188,
      "old_path": "src/cmd/go/internal/modindex/read.go",
      "new_id": "529c26ea057019cb565bc9258c8d8cd51c546bf4",
      "new_mode": 33188,
      "new_path": "src/cmd/go/internal/modindex/read.go"
    }
  ]
}
