)]}'
{
  "log": [
    {
      "commit": "c046db79d0a17b305697ea60e134a6d1907b8009",
      "tree": "1425da27dcf56b3226f68dfccf8b48dec33a1719",
      "parents": [
        "674e8be2e29ebe597c420abd4ba78ce63488535a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 13 08:26:25 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 13 10:55:07 2021 +0000"
      },
      "message": "Update ART generator tools to use python3.\n\nTest: buildbot-build.sh --target\nTest: m cpp-define-generator-test \u0026\u0026 out/host/linux-x86/testcases/cpp-define-generator-test/cpp-define-generator-test\nChange-Id: I73018df1e531c37d21397c2ffa35238e3df76d65\n"
    },
    {
      "commit": "d5ec2a1321106a4bc56cba197dfbc538c09b4ae9",
      "tree": "158310581c8343c5d8840b2b6febbb17bde01ad2",
      "parents": [
        "fa595885339140c3507f26d93cdc6b99081e23c5"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Aug 08 15:37:06 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Aug 09 15:45:21 2019 +0000"
      },
      "message": "Make the $/# in front of constants optional\n\nBug: http://b/117842681\nBug: https://github.com/android-ndk/ndk/issues/1036\n\nAfter change https://reviews.llvm.org/D65550, Clang stopped emitting \u0027#\u0027\nbefore constants in inline assembly.  To accommodate this change, mark\nthe $/# before constants as optional in make_header.py\n\nTest: Build with old and new compilers\nChange-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60\n"
    },
    {
      "commit": "766e74f58312af149219473a691c6f2d9bcca428",
      "tree": "4c216f5ebd128075f20d0857afb383d31da20c5a",
      "parents": [
        "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 02 17:12:24 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Cleanup the cpp-define-generator definitions.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Ifda7a51d19156b1eb62bc39b16ec559d609744e5\n"
    },
    {
      "commit": "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd",
      "tree": "0c4f88f1fa6ab56fd1b24426c75f17836a6bd81d",
      "parents": [
        "78940f2254354373c6b311c759c43f51d3ad77f1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 01 18:17:45 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Rewrite cpp-define-generator\n\nThe new method works by generating temporary per-architecture\nhuman-readable object file with the constants embedded in it.\nPython script extracts those values and generates the header.\n\nThis means the values can now implicitly depend on pointer size,\ncompile time flags, or ABI specific object layout with no hacks.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Id6e8c77c01f9d6c49cd6d40e3487b56fa4777349\n"
    }
  ]
}
