)]}'
{
  "log": [
    {
      "commit": "a3a125aaf29ae41a5aa6ebc38d5d01e9a1e5a3a8",
      "tree": "d5ff3d5685dda161949b5a017e08c378271022ec",
      "parents": [
        "0673769aabeacb0e2995b4284a05ab90a9048673"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 23 16:26:02 2024 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 23 16:26:02 2024 -0700"
      },
      "message": "Update go.mod file to go 1.22\n\nBug: 330574836\nTest: Presubmits\nChange-Id: I871cabd7aa403b315d5efcf75f5eff6df492478f\n"
    },
    {
      "commit": "82e444710d8d1eaeb69c9a72e6ad0dac0b435954",
      "tree": "ea93c6081f6731357c059b96baeba6b002573572",
      "parents": [
        "515e7991fc118127aa009bd96611aa43bc936740"
      ],
      "author": {
        "name": "Yu Liu",
        "email": "yudiliu@google.com",
        "time": "Wed May 15 19:16:55 2024 +0000"
      },
      "committer": {
        "name": "Yu Liu",
        "email": "yudiliu@google.com",
        "time": "Mon May 20 21:46:19 2024 +0000"
      },
      "message": "Write ninja file in parallel.\n\nBug: 335718784\nTest: CI\nChange-Id: I26f7babca349c654780711cfe0f0ece3faa5f436\n"
    },
    {
      "commit": "95bec3331cc42db65c048a475b28022c7a303ec9",
      "tree": "c138124ecd1358cf738e97248af77ff06d7d1eee",
      "parents": [
        "098c09334fefc9e061d061ec5cb491b4bbc83a4f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 31 15:15:30 2023 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 01 15:15:15 2023 -0700"
      },
      "message": "Use strings instead of simpleNinjaStrings where possible\n\nStoring every string without ninja variable references through\nsimpleNinjaString costs 24 bytes and a heap allocation.  16 bytes\nis used for the ninjaString.str string, 8 bytes for the\nninjaString.variables *[]variableReference.  An additional 8 bytes\nis used for the resulting pointer into the heap.\n\nThe vast majority of calls to simpleNinjaString originate in\nblueprint.parseBuildParams, which converts all of the parameters\npassed to ctx.Build into ninjaStrings.  All together this was\nallocating 1.575 GB of *ninjaString objects.\n\nAdd a parseNinjaOrSimpleStrings function that converts input strings\ninto ninjaStrings if they have ninja variable references, but also\nreturns a slice of plain strings for input strings without any ninja\nvariable references.  That still results in 1.39 GB of allocations just\nfor the output string slice, so also add an optimization that reuses\nthe input string slice as the output slice if all of the strings had\nno variable references.\n\nPlumb the resulting strings through everywhere that the []*ninjaStrings\nwere used.\n\nThis reduces the total memory allocations inside\nblueprint.parseBuildParams in my AOSP aosp_cf_x86_64_phone-userdebug\nbuild from 3.337 GB to 1.786 GB.\n\nTest: ninja_strings_test.go\nChange-Id: I51bc138a2a6b1cc7383c7df0a483ccb067ffa02b\n"
    },
    {
      "commit": "2bae13b0954480f9547d5478b4b9bc554808f572",
      "tree": "db1d186095600091eea47abfa59b31c4de8ec05b",
      "parents": [
        "ad7bcc7b507f5858171a81319241415b1239357c"
      ],
      "author": {
        "name": "Usta Shrestha",
        "email": "usta@google.com",
        "time": "Tue Feb 21 23:08:34 2023 -0500"
      },
      "committer": {
        "name": "Usta Shrestha",
        "email": "usta@google.com",
        "time": "Tue Mar 07 01:39:27 2023 -0500"
      },
      "message": "Use phony ninja outputs to reduce file-size\n\n  1. scan if any set of order-only deps are repeated\n  2. if so extract them as a phony output to be shared\n\nTest: m libc\nBug: NA\nChange-Id: I0689111b97bbbd1f3b26650e8ae2e0a4ffb5085e\n"
    },
    {
      "commit": "66c0b13553afbf4d2482e274f542120c75a00339",
      "tree": "1b8a2a99e143e29bd643c0edaead40bce93ea834",
      "parents": [
        "884e7374fbb3f7d8e43ae9da5e9d2628a7e676f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 25 11:25:04 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 25 14:52:54 2019 -0700"
      },
      "message": "Add proptools.Int and proptools.IntDefault\n\nAdd proptools.Int and proptools.IntDefault that behave analogously\nto proptools.String and proptools.StringDefault.\n\nChange-Id: I41fd3417c973c9ff4a5aa6680546b4b893784745\n"
    },
    {
      "commit": "44d336bdb32a47c89346ae6d4d73a1b2f50ef040",
      "tree": "0dac0bc126eb73daacac694218e74065b6d8e9b3",
      "parents": [
        "46d107079899e5bce313f1739b23c20422e5265a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Jul 21 13:02:56 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Jul 21 13:02:56 2018 -0700"
      },
      "message": "Add go.mod for go1.11 module support\n\nThis allows using the various go commands without a GOPATH.\n\nChange-Id: I428ad3a4e884b68615e6e73168c5a844bad7c4d4\n"
    }
  ]
}
