)]}'
{
  "log": [
    {
      "commit": "5b80358a9da889cd2ecf18eb49aa42efa409e582",
      "tree": "71c5fce7e27b9dbd74bd7fd2b62e0633938973ee",
      "parents": [
        "445e0ec3724b7f4f36bbd218f67a2c9bfbea7669"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 16 10:59:26 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 16 13:39:49 2017 -0700"
      },
      "message": "Don\u0027t dlclose plugins or agents during shutdown.\n\nWe were dlclosing agents and the JVMTI plugin during shutdown but it\nseems that some agents assume that their code will remain loaded even\nafter the Agent_OnUnload function returns. This caused segfaults\nduring shutdown in some situations. Since the runtime is shutting down\nanyway there is not much to lose by just not unloading these agents\nand the plugins they depend on.\n\nTest: stress --cpu 60\nTest: ./art/tools/run-prebuilt-libjdwp-tests.sh \\\n        --debug \\\n        --test org.apache.harmony.jpda.tests.jdwp.Events.CombinedEventsTest#testCombinedEvents_05\n\nBug: 67497270\nBug: 67855829\n\nChange-Id: Ib988c0d21bd12d40f33d709e633312eb68021b38\n"
    },
    {
      "commit": "e478ed98446bff1ede5084c755313ee84afc036f",
      "tree": "ee22440d6584748abb76a426bdc6ccf458b20f4d",
      "parents": [
        "7469d20208a737bfed74ed38f64226042ae62a53",
        "84b92e08d368e87faad8aaffd60c8303a909f5a9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 13 01:06:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 13 01:06:33 2017 +0000"
      },
      "message": "Merge \"Add support for using \u0027art\u0027 tools with gdbserver\""
    },
    {
      "commit": "7469d20208a737bfed74ed38f64226042ae62a53",
      "tree": "fff79cbf737b4386373e71268b59c5e14f19cc77",
      "parents": [
        "e5172c1362054e29477acd39d5aacf22fea7e608",
        "353d818365e20ff9f9bff6654c118ea2350e9e6f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 12 23:45:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 23:45:13 2017 +0000"
      },
      "message": "Merge \"ART: Add SOONG_ALLOW_MISSING_DEPENDENCIES to buildbot-build.sh\""
    },
    {
      "commit": "84b92e08d368e87faad8aaffd60c8303a909f5a9",
      "tree": "3a4a81a588022b791c382a584802691061ddf7fc",
      "parents": [
        "05727c50c8c329d03692ffe51dce453c54379d70"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 13:46:14 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 12 16:08:47 2017 -0700"
      },
      "message": "Add support for using \u0027art\u0027 tools with gdbserver\n\nSome tools (like run-jdwp-tests) invoke the \u0027art\u0027 tool automatically.\nThis makes it difficult to debug the runtime when running code\ncontrolled by those tools. To allow this I added a --gdbserver flag to\nboth the \u0027art\u0027 tool and the \u0027run-jdwp-tests.sh\u0027 script.\n\nTo use:\n    % ./art/tools/run-jdwp-tests.sh --debug \\\n                                    \u003c...\u003e \\\n                                    --gdbserver localhost:9999\nor\n    % art --gdbserver localhost:9999 \u003c...\u003e\n\nIn another terminal:\n    % gdb /path/to/dalvikvm # the art command will print the\n                            # appropriate path\n    (gdb) target remote localhost:9999\n\nTest: Manual\nChange-Id: Ice9a9f7622eee66261d10663c83bf06aef95f399\n"
    },
    {
      "commit": "71b3289dd44be8f87aa2d253b56ebda39867a7e7",
      "tree": "0a1cc6a56756c653ceb291c190baa2e94c84f1be",
      "parents": [
        "6ee6d226f80be742b426620e0f98089417cc1cdd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 12 15:42:51 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 12 22:44:13 2017 +0000"
      },
      "message": "Add CombineEvents_5 to libjdwp skips\n\nThis test seems somewhat flakey when run against the libjdwp agent.\n\nBug: 67497270\nTest: manual\nChange-Id: Ib6109175da4ebef5395262d98a827e4b6821620e\n"
    },
    {
      "commit": "353d818365e20ff9f9bff6654c118ea2350e9e6f",
      "tree": "132aec72564786b4c81e50f0a8c74cd9b06af039",
      "parents": [
        "9ca5363e3b7e7f330037fb21412c0199cf4fc53e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 12 10:17:34 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 12 10:17:34 2017 -0700"
      },
      "message": "ART: Add SOONG_ALLOW_MISSING_DEPENDENCIES to buildbot-build.sh\n\nAutomates requirement for building in master-art branch.\n\nTest: art/tools/buildbot-build.sh --host -j 40 (in master-art)\nTest: art/tools/buildbot-build.sh --host -j 40 (in aosp-master)\nChange-Id: Iec006188cfc9bfb54c9676d5b2ae3e02f8ba0f67\n"
    },
    {
      "commit": "6783118d2ad9d759f0617b1219a9e29a10a569f7",
      "tree": "53cf287225e934c0c5a18e9cdbcb361cabe708ce",
      "parents": [
        "37c7405977f88a4f45887178948b27490e8ebfc9",
        "c81bf0f5515cd2678f3d7126282c42eae9add6c0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 12 11:36:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 11:36:09 2017 +0000"
      },
      "message": "Merge \"Give even better error messages on failure to launch ahat.\""
    },
    {
      "commit": "c81bf0f5515cd2678f3d7126282c42eae9add6c0",
      "tree": "a012b73bcf3978575aaf40e256a6cf42f430638b",
      "parents": [
        "432d91004b79c79deebeee6f6197e43adf6caafd"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 12 09:55:19 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 12 10:04:45 2017 +0100"
      },
      "message": "Give even better error messages on failure to launch ahat.\n\nIn particular, explicitly state that a heap dump \"does not appear to\nbe a valid Java heap dump\" on HprofFormatException.\n\nBug: 64318055\nTest: m ahat-test\nTest: ahat Android.mk\nTest: ahat FileThatDoesNotExists.hprof\nTest: ahat etc/L.hprof \u0026 ahat etc/O.hprof\n\nChange-Id: I014b465e23e48941655bcbb3505cec8fd7965fc9\n"
    },
    {
      "commit": "3dea2121a90cc95c215736ef84d093e396f5525f",
      "tree": "6887dbb76c67c6d5102e125d91e4c648a7d8dae7",
      "parents": [
        "432d91004b79c79deebeee6f6197e43adf6caafd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 11 15:56:48 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 11 10:07:52 2017 -0700"
      },
      "message": "Revert \"Revert \"Ensure Proxy frames work with JVMTI stack frame functions\"\"\n\nThis reverts commit d108d9eaae26df9e4480cf46d26e8c75f142bd6a.\n\nIt seems we have a bug somewhere in our proxy or stack-visitor code\ncausing StackVisitor::GetThisObject to return an object with a null\nklass_. Added a temporary skip for the test configurations that expose\nthis until it can be fixed.\n\nBug: 66903662\nBug: 67679263\n\nReason for revert: Added skip for test that exposes a pre-existing bug\nin our stack-visitor/proxy-object support.\n\nTest: ./test.py --host -j40\nTest: ./test/testrunner/testrunner.py --host --gcstress -t 1939\n\nChange-Id: I8a457112af404c3f4c94e3a2029b744d453ced5d\n"
    },
    {
      "commit": "432d91004b79c79deebeee6f6197e43adf6caafd",
      "tree": "02bb580a21de86e2e56e2c695ab4b10d988e2c64",
      "parents": [
        "567563a9c6ccc06c2c9889d1c3c4feaa3c2b2dab",
        "d108d9eaae26df9e4480cf46d26e8c75f142bd6a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 11 12:07:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 11 12:07:30 2017 +0000"
      },
      "message": "Merge \"Revert \"Ensure Proxy frames work with JVMTI stack frame functions\"\""
    },
    {
      "commit": "567563a9c6ccc06c2c9889d1c3c4feaa3c2b2dab",
      "tree": "b92fb2a59dae823ffb62233cb0b31237a0662c3a",
      "parents": [
        "930e332a1f408f8f066e188270bda0e3edf24aab",
        "ffda8b8b23a0349572829fc0a8ecc0ae8043eeaf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 11 11:01:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 11 11:01:08 2017 +0000"
      },
      "message": "Merge \"Don\u0027t log INFO logs with the art script.\""
    },
    {
      "commit": "d108d9eaae26df9e4480cf46d26e8c75f142bd6a",
      "tree": "9a9566b73bd916befb9ce1c31c2ff309d63ff28e",
      "parents": [
        "a03a9eeb9d1b2ebca17cc326f52c84a5abca6707"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 10:29:19 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 10:29:19 2017 +0000"
      },
      "message": "Revert \"Ensure Proxy frames work with JVMTI stack frame functions\"\n\nReason for revert: gcstress 1914-get-local-instance failures,\n  object-inl.h:163] Check failed: GetClass\u003ckVerifyNone\u003e() !\u003d nullptr\n\nBug: 66903662\n\nThis reverts commit a03a9eeb9d1b2ebca17cc326f52c84a5abca6707.\n\nChange-Id: I5c68616d61566dd4ade713c4dad5e462b76d9af7\n"
    },
    {
      "commit": "ffda8b8b23a0349572829fc0a8ecc0ae8043eeaf",
      "tree": "032b1b9164a2be94b46b310372a10d0f8d624807",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 06 13:48:08 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 11 10:13:09 2017 +0100"
      },
      "message": "Don\u0027t log INFO logs with the art script.\n\nOtherwise golem hits the logs limit. Also it\u0027s nicer to\nthe user to not be overwelmed by logs.\n\nOnly set if ANDROID_LOG_TAGS is not set.\n\nbug: 66635047\nTest: make\nChange-Id: If5ee877481412d2d5f93a39638553888e8f359c6\n"
    },
    {
      "commit": "930e332a1f408f8f066e188270bda0e3edf24aab",
      "tree": "a1a20bd07c848e842ce046b8e0680c5a5faf9edd",
      "parents": [
        "62fdb114ce19e6faf15d3899d63509dde197677e",
        "8cc213436f3d15a44fb86eda04e16e24923a8f4c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 11 08:03:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 11 08:03:10 2017 +0000"
      },
      "message": "Merge \"Reorganize ahat source directory layout.\""
    },
    {
      "commit": "a03a9eeb9d1b2ebca17cc326f52c84a5abca6707",
      "tree": "3a52462cba8002df6c086ee57d6b7e71a400c74a",
      "parents": [
        "baeedfee3521c295916e3ae85afa2cb5dee7d6a5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 10 16:20:10 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 10 16:20:10 2017 -0700"
      },
      "message": "Ensure Proxy frames work with JVMTI stack frame functions\n\nWe were incorrectly returning errors and crashing when stack frame\nJVMTI functions were used with Proxy methods. This fixes those issues\nand adds a test for them.\n\nBug: 66903662\nTest: ./test.py --host -j40\nChange-Id: Ia7c768d631c5ac4d8339d70a9d4761d5b4bc284e\n"
    },
    {
      "commit": "8cc213436f3d15a44fb86eda04e16e24923a8f4c",
      "tree": "b65de1e6096d50325bcf0ea47f8ed73b09c37622",
      "parents": [
        "baeedfee3521c295916e3ae85afa2cb5dee7d6a5"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 10 17:23:33 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 10 17:23:33 2017 +0100"
      },
      "message": "Reorganize ahat source directory layout.\n\nIn particular, use a directory tree that reflects the Java package\ntree to facilitate use of IDEs for browsing the ahat source code.\n\nTest: m ahat-test\nChange-Id: I00c205df420c2a53b211f7b772dd5b45cedf6ae3\n"
    },
    {
      "commit": "baeedfee3521c295916e3ae85afa2cb5dee7d6a5",
      "tree": "9a9566b73bd916befb9ce1c31c2ff309d63ff28e",
      "parents": [
        "f167da77ae31ca0a5dbd88410b2eb14589b1db13",
        "455f5528608de8fe3bfcf674c0e0e31797c9ab8b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 10 12:50:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 10 12:50:26 2017 +0000"
      },
      "message": "Merge \"Use decode instead of parseLong for query params.\""
    },
    {
      "commit": "f167da77ae31ca0a5dbd88410b2eb14589b1db13",
      "tree": "bb093cd0fc81a151974b519a258196e4ace86d5f",
      "parents": [
        "c5b13f57132415352bcd4a0161da6110026358b5",
        "82eeacee022429698a4b3516a1c114f51d6ef1a6"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 10 12:50:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 10 12:50:16 2017 +0000"
      },
      "message": "Merge \"Distinguish between weakly reachable and unreachable instances.\""
    },
    {
      "commit": "c5b13f57132415352bcd4a0161da6110026358b5",
      "tree": "fd76c691ef07fed66daa0ed1294d35decfe72103",
      "parents": [
        "4c3682649ebcaef4ab237f523f8e39ebd65e4f8d",
        "d94acefd62012791b09d51d54b39538d5f96eb41"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 10 12:50:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 10 12:50:00 2017 +0000"
      },
      "message": "Merge \"Revert \"Don\u0027t show sizes with sample paths.\"\""
    },
    {
      "commit": "85f8c70741eddf3360e9b022bb03e1f9334d7e2a",
      "tree": "a7d6f526d6392ad271e56ab51d5cf9b814111f95",
      "parents": [
        "af0e7d82e0c033be52dcda29aa25cf6ddabf464a",
        "c7feb82260e31d8d736bde81c4117ca5dcc8d8cf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 09 22:43:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 09 22:43:59 2017 +0000"
      },
      "message": "Merge \"Add JDWP failures found by buildbot\""
    },
    {
      "commit": "82eeacee022429698a4b3516a1c114f51d6ef1a6",
      "tree": "82ca9b51c869d62ab0712d134ab43d9b38419702",
      "parents": [
        "25ae37970757ab06bb75b63a933926a4db4bb38d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 09 10:08:35 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 09 10:08:35 2017 +0100"
      },
      "message": "Distinguish between weakly reachable and unreachable instances.\n\nAnnotate weakly reachable instances with \"weak\" instead of\nunreachable. Don\u0027t show a sample path from GC root for unreachable\ninstances.\n\nBug: 64785007\nTest: m ahat-test\nTest: Manually inspect strong, weak, and unreachable instances.\nChange-Id: I1cb73d47198be847eaccd5855f6f14acf828a75a\n"
    },
    {
      "commit": "d94acefd62012791b09d51d54b39538d5f96eb41",
      "tree": "cb548849892422ace16bcdea4ceda0dfc70a975e",
      "parents": [
        "25ae37970757ab06bb75b63a933926a4db4bb38d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 09 09:23:03 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 09 09:38:33 2017 +0100"
      },
      "message": "Revert \"Don\u0027t show sizes with sample paths.\"\n\nThis reverts commit 4c0fe0240aaca472a045174d24b0846da33242d5.\n\nBug: 67234670\nTest: m ahat-test\nTest: Manually inspect some sample paths.\n\nChange-Id: I66b32c3a7d19d9da7d56ab162313932411c9bbff\n"
    },
    {
      "commit": "c7feb82260e31d8d736bde81c4117ca5dcc8d8cf",
      "tree": "4710008464b01f05f6944ade429f61847a7ba4e0",
      "parents": [
        "97785f595a8a3b5c766021a07c47a2ca81e4a810"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 06 09:07:55 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 06 09:10:41 2017 -0700"
      },
      "message": "Add JDWP failures found by buildbot\n\nTest: ./art/tools/run-prebuilt-jdwp-tests.sh\nBug: 67497270\nChange-Id: I7db825b49196b72b633ff7c811769e82b12baf08\n"
    },
    {
      "commit": "1fdc4e3e314c31e91f10749018a92aebcca16f6b",
      "tree": "f68f722c2562ed5bdfdc1533955517fa87c0b573",
      "parents": [
        "97785f595a8a3b5c766021a07c47a2ca81e4a810",
        "bb6c1ca94f4262b41176777f3365f9d6f1d14246"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 05 23:46:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 05 23:46:57 2017 +0000"
      },
      "message": "Merge \"Include libwrapagentproperties in buildbot-build.sh\""
    },
    {
      "commit": "bb6c1ca94f4262b41176777f3365f9d6f1d14246",
      "tree": "261760e9ad525484ed627e8e9beeb4d56b329464",
      "parents": [
        "2cda354d7fcd4e0a32462d4aaa448869a93b20a3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 05 15:19:29 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 05 15:21:05 2017 -0700"
      },
      "message": "Include libwrapagentproperties in buildbot-build.sh\n\nWe need this to run prebuild-libjdwp-tests\n\nTest: ./art/tools/buildbot-build.sh\nChange-Id: Idd749f2f7fde3c571a448879bffbe80febe1c6df\n"
    },
    {
      "commit": "455f5528608de8fe3bfcf674c0e0e31797c9ab8b",
      "tree": "884965d131f2a44527fa452d7df61fc030823065",
      "parents": [
        "25ae37970757ab06bb75b63a933926a4db4bb38d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 04 09:50:30 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 04 09:58:52 2017 +0100"
      },
      "message": "Use decode instead of parseLong for query params.\n\nThis makes it possible to enter a hex id of an object in the url,\nwhere before you had to manually translate the hex id to decimal\nfirst.\n\nSwitch to using the hex format for the id in links to be more consistent\nwith the summary presentation of objects.\n\nBug: 28669428\nTest: m ahat-test\nTest: ahat test-dump/O.hprof, visit http://localhost:7100/object?id\u003d0x6004fdb8\nTest: launch ahat and click on object links and confirm they still work.\nTest: run ahat on a heap dump with bitmaps and confirm they still show up.\nChange-Id: Ia6a84b4674a95519dce1ff701086a86d551a51d1\n"
    },
    {
      "commit": "3069f90c490cf2d234dc54795cdfd39a898b5aa4",
      "tree": "4345f716c173688c1e42295254f45ad55fd6cc0e",
      "parents": [
        "f1671357148b0ed205c93d051efd03f49e774885",
        "fefd318aea274e2e2c8c02f3e2aed98a0a51321b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 03 19:38:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 19:38:11 2017 +0000"
      },
      "message": "Merge \"Use -Werror in art\""
    },
    {
      "commit": "fefd318aea274e2e2c8c02f3e2aed98a0a51321b",
      "tree": "616725d010d1bf9064a364cc21367e9c4212d960",
      "parents": [
        "7ec532fd6387a309c824f1abba466003593a685e"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Sep 29 16:18:00 2017 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 03 17:47:30 2017 +0000"
      },
      "message": "Use -Werror in art\n\n* These targets missed -Werror in cflags.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: Icd2ad147794b2710ab745f8041ce43b4cc6cf750\n"
    },
    {
      "commit": "a96c47805bdb4c6755ef539bf8c0f945181428b1",
      "tree": "0c3e4ae46f2ed842d274da10dc7da24127b6e128",
      "parents": [
        "9e4a54c9fcb18e702f51569c16262f54fd0d0c63",
        "dc700a7bd7f7fbf2a400d3e81d4f09668a58d2f4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 02 20:18:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 02 20:18:36 2017 +0000"
      },
      "message": "Merge \"Add script to run JDWP tests against prebuilt libjdwp.so\""
    },
    {
      "commit": "dc700a7bd7f7fbf2a400d3e81d4f09668a58d2f4",
      "tree": "8d8c7bc776e5297cb05a4618c57ce1f6dea9f521",
      "parents": [
        "f94d9601091bff0b719a71da60460733bb2b3278"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 13:56:46 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 02 11:45:26 2017 -0700"
      },
      "message": "Add script to run JDWP tests against prebuilt libjdwp.so\n\nThe invocation to run the JDWP tests against the prebuilt/ libjdwp.so\nwas long and easy to mess up. In order to improve usability we added a\nnew script that will do it for you.\n\nBug: 62821960\nTest: ./art/tools/run-prebuilt-libjdwp-tests.sh\nChange-Id: Idfb9cf19dc50e34fc9ef53ee682ce1c3f86ca178\n"
    },
    {
      "commit": "10e4b85ac3171635429b7fd1aacd65aa327ce983",
      "tree": "76e1c12cc2b19d7ae0f1a91ac72034a1c0384a1a",
      "parents": [
        "f67f115423c9ef5aa62a33c12670cd8f89457c9c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 02 09:49:30 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 02 09:49:30 2017 +0100"
      },
      "message": "Update ahat version number to 1.4.\n\nTest: m ahat-test\nTest: open heap dump and verify version number on overview page\nChange-Id: I03a38e62d9f0c7d3ccbbfb0ddbf6297ef04d73ba\n"
    },
    {
      "commit": "cdf68b16a212e71120ecccbf9f4d798b61259ed2",
      "tree": "fff027f87d46ba8b2d05569634b582a7eed58af1",
      "parents": [
        "b880a8a5926662bb49d9e66ceaa84be1f7f0d5f5",
        "5316bb897d5b66a9cf1eb38b28c562d48a8d2863"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 29 08:15:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 29 08:15:49 2017 +0000"
      },
      "message": "Merge \"Give better error messages on failure to launch ahat.\""
    },
    {
      "commit": "b880a8a5926662bb49d9e66ceaa84be1f7f0d5f5",
      "tree": "3f0a61ab93cf969e1b9ce1d29f53e0e4f76d7815",
      "parents": [
        "05727c50c8c329d03692ffe51dce453c54379d70",
        "e949f82eaf7e35199a40ebbe5d8776e35b8c71c2"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 29 08:15:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 29 08:15:17 2017 +0000"
      },
      "message": "Merge \"Add support for parsing the ROOT_FINALIZING record.\""
    },
    {
      "commit": "5316bb897d5b66a9cf1eb38b28c562d48a8d2863",
      "tree": "bcf65315c542bca4f1c86a19d8b677e19b1049cb",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 15 10:53:07 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 28 09:59:11 2017 +0100"
      },
      "message": "Give better error messages on failure to launch ahat.\n\nBug: 28312435\nBug: 64318055\nTest: m ahat-test\nTest: manually launch ahat on a random file.\nChange-Id: Ic3b4158d33390cbd9cd6cb48f7e4b301dd61c5b5\n"
    },
    {
      "commit": "e949f82eaf7e35199a40ebbe5d8776e35b8c71c2",
      "tree": "ff87eb135271d2f0140a229c0fb3c8b47c4925d2",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 28 09:50:44 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 28 09:58:09 2017 +0100"
      },
      "message": "Add support for parsing the ROOT_FINALIZING record.\n\nTest: m ahat-test, with a ROOT_FINALIZING record manually inserted into L.hprof\nTest: Open a heap dump from Android K that contains ROOT_FINALIZING.\n\nChange-Id: I484f2f4e1d90e22a3d5e5f83073566945c15f8d0\n"
    },
    {
      "commit": "2ca278036432eefbdbf39502dfcfb7e38a54332c",
      "tree": "8aa7ab585414f2b54186ee4285f2435be90de335",
      "parents": [
        "9389ae7309180f4dccc3c34e26798ed428f0d054"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 14:57:43 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 15:11:33 2017 -0700"
      },
      "message": "Run bpfmt\n\ncd art; find . -name \u0027*.bp\u0027 | xargs bpfmt -w\n\nTest: mmma art\nChange-Id: Iec406b734180313b98a58b99a776738772e63cc1\n"
    },
    {
      "commit": "0e9d7aa904dea5cee2b608b14d305c73787a3512",
      "tree": "7ff8970d0d8f704feca8f40153edb6bde086c72c",
      "parents": [
        "8f6d83f69a570a273e46cfdbde8284fbbe83ea71"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 25 16:04:09 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 25 16:30:31 2017 -0700"
      },
      "message": "Add failures file to jdwp tests using libjdwp.so\n\nThis file lists current failures of our apache-harmony jdwp test suite\nwhen running against ART using a libjdwp.so JVMTI agent to provide the\njdwp implementation.\n\nTest: ./art/tools/run-jdwp-tests.sh \\\n            --mode\u003dhost --debug --variant\u003dx64 \\\n            -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so \\\n            --jdwp-path /usr/lib/jvm/default-java/jre/lib/amd64/libjdwp.so \\\n            --agent-wrapper $ANDROID_HOST_OUT/lib64/libwrapagentpropertiesd.so\u003d$PWD/art/tools/libjdwp-compat.props \\\n            --expectations $PWD/art/tools/libjdwp_art_failures.txt\n\nChange-Id: I07724b836492d60b2c8860fcfbb6021ec986b212\n"
    },
    {
      "commit": "bdff6fee3226308a6639b57b76f4e65e3b687ca4",
      "tree": "9c42ae657987823a334101e7ae2c1ea282d150da",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Sep 25 13:33:35 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Sep 25 13:39:57 2017 +0100"
      },
      "message": "Don\u0027t build ahat tests with EMMA_INSTRUMENT.\n\nFixes build failure.\n\nTest: mma, in art/tools/ahat directory\nTest: mma EMMA_INSTRUMENT\u003dtrue, in art/tools/ahat directory\nChange-Id: I0c7b5c54eaa18138e1b1c49d9fa54a69030134b6\n"
    },
    {
      "commit": "d2c751668d3c2d1399fb5291260435b92f75bc33",
      "tree": "0b966a6ee63f26684170cdf0c7cf10d6b4c3b332",
      "parents": [
        "290d692e518f44fbc1fa9ef05a8f468d37510462"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 22 12:50:17 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 22 12:50:52 2017 +0100"
      },
      "message": "Don\u0027t build ahat tests for mac.\n\nBecause they require running ART, which isn\u0027t supported on mac.\n\nChange-Id: Ic4dea4a7cbbd8932694c0a2dd153e50e638ab171\n\nTest: m ahat-test, but I can\u0027t test it fixes the mac locally.\n"
    },
    {
      "commit": "290d692e518f44fbc1fa9ef05a8f468d37510462",
      "tree": "36294dac425bf662a9db88ab796d790d842728b5",
      "parents": [
        "79bbbc1c9c40478ccf752214da9574dd22cd8b02",
        "26a982ad022a254ac57f84e996c31b4e271de028"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Sep 22 10:56:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 10:56:22 2017 +0000"
      },
      "message": "Merge changes I9a71ea46,Ib14c294a,Id91c2be4,I3fa77e2e\n\n* changes:\n  Remove last remaining guava dependencies.\n  Use a custom parser implementation instead of perflib.\n  Remove perflib-based native allocation registry identification.\n  ahat: Expand test coverage using static heap dumps.\n"
    },
    {
      "commit": "26a982ad022a254ac57f84e996c31b4e271de028",
      "tree": "732c3aa6f3b27f7bd088658a62d4c1fa54bc2b51",
      "parents": [
        "a3b7cf0f12da448664536f8b7c793e73da0a4c7f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Aug 23 09:33:02 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 21 11:19:07 2017 +0100"
      },
      "message": "Remove last remaining guava dependencies.\n\najat.jar reduced in size from 2.3MB down to 135KB.\n\nTest: m ahat-test, with HtmlEscaperTest added.\nChange-Id: I9a71ea46d1c953380ae3b07f3503ef16e4b97c8d\n"
    },
    {
      "commit": "a3b7cf0f12da448664536f8b7c793e73da0a4c7f",
      "tree": "bf0625a7388b4c9ecb2a5f548bec3029b1699ca3",
      "parents": [
        "07f8abbf2176c62174c6d9765cd132b08abbd490"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 26 10:21:48 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 21 11:19:07 2017 +0100"
      },
      "message": "Use a custom parser implementation instead of perflib.\n\nRemoves the dependency on perflib, avoids bugs in the perflib parser\nwhose fixes would not be readily available for ahat to use in the short\nterm, and avoids the need to pull in additional dependencies required to\nuse future versions of perflib.\n\nImproves heap dump processing performance by 30-50% on some examples now\nthat we can avoid overheads due to the impedance mismatch between\nperflib\u0027s object representation and ahat\u0027s object representation.\n\nOther relevant changes included in this CL:\n* Introduce enums for root types and basic types.\n* Compute instance sizes on demand rather than eagerly.\n* Introduce an abstraction for a collection of instances sorted by id.\n\nBug: 28312815\nBug: 33769446\nBug: 65356532\nTest: m ahat-test, this change fixes all previously failing tests.\nChange-Id: Ib14c294aa745cb03b02fa81d1544c78ff35e1edc\n"
    },
    {
      "commit": "07f8abbf2176c62174c6d9765cd132b08abbd490",
      "tree": "02516f5bd0c26624dcc6cb7a848ffddf8929dd4d",
      "parents": [
        "72f0ec717ce1ee13108d65af83fc99f8e507d75d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 18 17:16:48 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 21 11:19:07 2017 +0100"
      },
      "message": "Remove perflib-based native allocation registry identification.\n\nIn preparation for removing dependency on perflib.\n\nTest: m ahat-test, change covered by NativeAllocationTest.\nChange-Id: Id91c2be4910699f9d4c90b44210f8d9bdb9c2318\n"
    },
    {
      "commit": "72f0ec717ce1ee13108d65af83fc99f8e507d75d",
      "tree": "407ba10312a3381c5e5033f11803937a3850ab69",
      "parents": [
        "67246e9693e8fdb3b9edd101242e54586ed3fd5a"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 17:18:37 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 21 11:19:06 2017 +0100"
      },
      "message": "ahat: Expand test coverage using static heap dumps.\n\nA limitation of the existing ahat test framework was that it was only\neasy to test heap dumps generated as part of building the ahat tests.\n\nThis change adds static heap dumps from previous versions of Android\nto test issues that were specific to previous versions or that are\neasier to test with a hard-coded heap dump file.\n\nThe test heap dumps are now stored as resources in ahat-test.jar\nrather than being passed to ahat-test.jar using system properties.\n\nFixes a couple of minor bugs encountered when expanding tests.\n\nThere are currently two failing tests:\n1. Thread roots are not properly marked.\n2. Root records not in the default heap are not properly marked.\n\nTest: m ahat-test, from clean build, with new tests added.\nBug: 65356532\n\nChange-Id: I3fa77e2e75d535a1dd68a763c7c45913a9e4074d\n"
    },
    {
      "commit": "0ac2e5c1013cb41d73aa87c885fd99d4e5eb7d11",
      "tree": "f4d1d5b037010c3b9d94b84fc88331adf5374a39",
      "parents": [
        "8048bf6d13dd4492df8d59ecb795987558e2e579"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 19 15:35:20 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 20 10:37:53 2017 -0700"
      },
      "message": "Add property-changing JVMTI agent wrapper.\n\nAdds libwrapagentproperties agent that allows one to change or add to\nthe system properties observed by a JVMTI agent. This is useful for\ncompatibility as some JVMTI agents expect to be able to find system\nproperties that are not present in ART. With this we can run them\nwithout having to modify the runtime itself.\n\nAlso adds a --agent-wrapper flag to run-jdwp-tests.sh to facilitate\nthe use of this agent.\n\nTest: mma -j40 libwrapagentproperties\nTest: ./art/tools/run-jdwp-tests.sh \\\n        --mode\u003dhost \\\n        --variant\u003dx64 \\\n        -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so \\\n        --jdwp-path /usr/lib/jvm/default-java/jre/lib/amd64/libjdwp.so \\\n        --agent-wrapper $ANDROID_HOST_OUT/lib64/libwrapagentproperties.so\u003d$PWD/art/tools/libjdwp-compat.props\n\nChange-Id: Ic5eef7e9b4b8c54f4b0683dbb4e71768cbf4f97c\n"
    },
    {
      "commit": "ccb7bb9090593f150e19954c4b86fc140089cd4e",
      "tree": "2d260277a30ceab344c61d87a816e00ec98e69bf",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 19 09:19:09 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 19 09:20:47 2017 -0700"
      },
      "message": "Fix typo in run-jdwp-tests.sh\n\njdpa -\u003e jpda.\n\nTest: ./art/tools/run-jdwp-tests.sh \\\n            --mode\u003dhost \\\n            --debug \\\n            --variant\u003dx64 \\\n            -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so \\\n            --jdwp-path /usr/lib/jvm/default-java/jre/lib/amd64/libjdwp.so\n\nChange-Id: I3d7743faeee0b152188d4d5d3d482e130f55e6d1\n"
    },
    {
      "commit": "7a06e4a826c73ef20e0a9ed3d4642d656137c00d",
      "tree": "d63a723dd468417597ac7e5a54565eea97fdf078",
      "parents": [
        "72e80c66e6ab46859eeff46226dc1bcaf6848aa9",
        "0ae15326456aaab7717c09b07eaf2d766dbaadda"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 19:26:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 19:26:31 2017 +0000"
      },
      "message": "Merge \"tools: Add new titrace tool to print dynamic instruction counts\""
    },
    {
      "commit": "0ae15326456aaab7717c09b07eaf2d766dbaadda",
      "tree": "b323ea082a55dacaf348ad3f687cec536b66997b",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 14 13:55:06 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 15 10:22:18 2017 -0700"
      },
      "message": "tools: Add new titrace tool to print dynamic instruction counts\n\nImplemented on top of the Tooling Interface (jvmti.h) and works on both\nRI and ART (host/target). See README.md for more details.\n\nExample usage:\n\n$\u003e make libtitrace\n$\u003e java -agentpath:out/host/linux-x86/lib64/libtitrace.so helloworld\n  Hello\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 TI Trace // Summary\n  ++++++++++++++++++++++++++++++++++++++++++++++++\n     * Single step counter: 405982\n  +++++++++++    Instructions Count   ++++++++++++\n     * aconst_null(op:1), count: 734, % of total: 0.180796\n     * iconst_m1(op:2), count: 470, % of total: 0.115769\n     * iconst_0(op:3), count: 4246, % of total: 1.04586\n     * iconst_1(op:4), count: 3585, % of total: 0.883044\n     * iconst_2(op:5), count: 1068, % of total: 0.263066\n     ............\n\nTest: manual\nChange-Id: I0cd1f4f88e54cf8612641128230b8e93157b48ea\n"
    },
    {
      "commit": "5809417697955005751d60498964f6d4bd4a096f",
      "tree": "bcc6b1c694c6ba5c185bd81d66338b060fbcb258",
      "parents": [
        "3824222a7f4d6d11ccfd90149ad269e4cf283de2",
        "a490555f81e0e945cdfe9cf3bbfa2a8134d9a470"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 14 07:53:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 14 07:53:26 2017 +0000"
      },
      "message": "Merge changes Ifddf4991,If7804f94,I9d96d8ff,I6108dba5,I5429996a\n\n* changes:\n  Store instance fields and types with class objects.\n  Remove findClass and mClasses from AhatSnapshot.\n  Specialize Value types and make Value more type safe.\n  Minor style cleanup of test-dump/Main.java.\n  Make Site ids be independent of instance ids.\n"
    },
    {
      "commit": "a490555f81e0e945cdfe9cf3bbfa2a8134d9a470",
      "tree": "019ae2f8311d9f8bae9ba72e7fa5ac7975d848d6",
      "parents": [
        "8d02c895a872926fba8618ae30d5c855ef337fe7"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 25 16:49:41 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 13:05:35 2017 +0100"
      },
      "message": "Store instance fields and types with class objects.\n\nRather than duplicating them for every class instance.\n\nTest: m ahat-test\n\nChange-Id: Ifddf49918ca8532332928ab09ed9983d6ad8858f\n"
    },
    {
      "commit": "8d02c895a872926fba8618ae30d5c855ef337fe7",
      "tree": "86d5e218e78cea29dc891ec1892d18be150402f4",
      "parents": [
        "21f89d2cc47e9f688b0d7143a282b17a241a50a2"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Sep 11 13:04:05 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 12:48:59 2017 +0100"
      },
      "message": "Remove findClass and mClasses from AhatSnapshot.\n\nThe mClasses data structure mapping class names to class objects was\nonly used for testing purposes. Remove this data structure from\nAhatSnapshot and find an alternative approach for the test cases so\nthat users don\u0027t incur the runtime and memory costs of the data\nstructure.\n\nTest: m ahat-test\n\nChange-Id: If7804f943c6155448a5fded92ff71e946435b584\n"
    },
    {
      "commit": "21f89d2cc47e9f688b0d7143a282b17a241a50a2",
      "tree": "60070b7dc55e3201c5f147c7afcf9275812677ee",
      "parents": [
        "8f0d9f106e57299cd702d1edad91944f83868f0b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Sat Aug 26 16:30:04 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 12:48:59 2017 +0100"
      },
      "message": "Specialize Value types and make Value more type safe.\n\nSaves memory by removing an extra layer of boxing for primitive\nvalues.\n\nTest: m ahat-test\n\nChange-Id: I9d96d8ff0bd55cbeaa7ce51700133aca9f43621b\n"
    },
    {
      "commit": "8f0d9f106e57299cd702d1edad91944f83868f0b",
      "tree": "ee6defd89021a1c256eeed0996f2f509a35643ce",
      "parents": [
        "29c4bee7526accc90e61a34004ab0b0d5cc907de"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Sep 07 11:57:12 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 12:48:59 2017 +0100"
      },
      "message": "Minor style cleanup of test-dump/Main.java.\n\nTo be more consistent with the style used elsewhere in ahat.\n\nTest: m ahat-test\nChange-Id: I6108dba57924b3a97b6eb8bc584aed9ab2ebb42b\n"
    },
    {
      "commit": "29c4bee7526accc90e61a34004ab0b0d5cc907de",
      "tree": "5092ed8f2e2d25b1e2e544b03967705bd3cb6571",
      "parents": [
        "c69f6c310b49f2a22b756b318e5d5703ef304f0e"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Aug 10 10:16:15 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Sep 13 12:48:52 2017 +0100"
      },
      "message": "Make Site ids be independent of instance ids.\n\nCleans up construction of sites by allowing sites to be constructed\nbefore knowing of any instances that were allocated at the site.\n\nTest: m ahat-test, with new SiteTest added.\nChange-Id: I5429996a51aa3be3094989b3673d1b0a850cc3e8\n"
    },
    {
      "commit": "b22a3ed06cd613f2deefd9a504b8ddcf1a02d31d",
      "tree": "64518a99659476a7cf7db3b07583270992a159ed",
      "parents": [
        "9af08e64d061f12d486b88c2545d8ddde9d08bf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 07 15:25:53 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 07 15:26:56 2017 +0100"
      },
      "message": "2 tests sometimes timing out on gcstress/debug.\n\nTest: run-libcore-tests\nChange-Id: I60ffe8104ff16563f2a68ebfe7dd63758d59bf0e\n"
    },
    {
      "commit": "972c9a42b5901531129ad3b2be0dd48e1189ddfe",
      "tree": "0fbe12d61aa1f72d2f9980b614fecea29802afc7",
      "parents": [
        "39d44ba52b512cdfa7a0a2fccc7f77d28a15329e",
        "9a2e027947c3dbc07a63bfe532c86b9563843c72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 04 10:52:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 04 10:52:19 2017 +0000"
      },
      "message": "Merge \"Remove unnecessary work in dominators computation.\""
    },
    {
      "commit": "9a2e027947c3dbc07a63bfe532c86b9563843c72",
      "tree": "e35a7d5021abe590662d25470a54adc9fda0294a",
      "parents": [
        "cd63fc8a656a7548e97aac755dc9820d5bc11240"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Sat Sep 02 15:20:06 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Sep 04 09:49:13 2017 +0100"
      },
      "message": "Remove unnecessary work in dominators computation.\n\nAlso rename \u0027undomid\u0027 to better indicate how it is being used.\n\nThis fixes a performance problem with the dominators computation for\nsome pathological cases, in one case reducing the time to compute\ndominators from 10 minutes down to a few seconds.\n\nBug: 33957507\nTest: m ahat-test\nTest: manually verify overview and rooted numbers are unchanged for a\n      reasonably complex heap dump.\n\nChange-Id: I2a13f6b62f0bf56e6051da637d9872ea8f8b3d2d\n"
    },
    {
      "commit": "80be041454871a9b72c39790a10954595d721a63",
      "tree": "19e23b45ff88c0b9639b873eba959c1cfec5e34a",
      "parents": [
        "8ef4b6121ea496d38c0b8aeebad3f1227f819b17",
        "5122e6ba34d46851cd89f2ad55bf6bb067e038d6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 13:47:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 13:47:46 2017 +0000"
      },
      "message": "Merge \"ART: Remove ArtMethod::dex_cache_resolved_methods_.\""
    },
    {
      "commit": "5122e6ba34d46851cd89f2ad55bf6bb067e038d6",
      "tree": "e96ba37b6451be7a06d930b0274251cac35ce05e",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 16:10:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 11:29:31 2017 +0100"
      },
      "message": "ART: Remove ArtMethod::dex_cache_resolved_methods_.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --target on Nexus 6P\nTest: Repeat the above tests with ART_HEAP_POISONING\u003dtrue\nTest: Build aosp_mips64-eng\nChange-Id: I9cd0b8aa5001542b0863cccfca4f9c1cd4d25396\n"
    },
    {
      "commit": "8d31b9f7f36a4668d6fa2a64ea87bdb4b96a9e3e",
      "tree": "75e8f2f579936567f63dea3df5a2080f8bd527b0",
      "parents": [
        "70f94cace70be42861ba0a433cfe4bdf6c892f7c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Aug 28 09:26:54 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Aug 28 13:02:55 2017 -0700"
      },
      "message": "Added option to use dx in dexfuzz testing as well.\n\nRationale:\nMoving away from jack, we need all our fuzzing tools\nto be able to use alternative compilation paths.\n\nBUG: 19637031\n\nTest: nightly fuzzing (Aart\u0027s cron job for now)\nChange-Id: I92b13e46ed692d7813c072b576d8a3267ff36dd5\n"
    },
    {
      "commit": "95d9bdd36b7ae6682f8602292fd547a0faa73829",
      "tree": "71fbc9572541cdf08c21c88e3a1d5ff92f1d9885",
      "parents": [
        "31d567972b507f66c7ab3a528de9c2144e3f5d2d",
        "617c9c502cb9f60dc55f8679e6de982732e95f3c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 23 22:25:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 23 22:25:32 2017 +0000"
      },
      "message": "Merge \"Support running jdwp tests on RI and with alternate JDWP\""
    },
    {
      "commit": "617c9c502cb9f60dc55f8679e6de982732e95f3c",
      "tree": "5dcc3ffbf044156721e20722d0c33b00b6d205fc",
      "parents": [
        "675c779cb046bca49229e1e5268d0eb622159214"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 18 11:52:25 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 23 13:57:55 2017 -0700"
      },
      "message": "Support running jdwp tests on RI and with alternate JDWP\n\nChange the run-jdwp-tests.sh script so it can easily be used to run\nour apache-harmony jdwp tests against the RI and to run them with\nalternative JDWP implementations on all modes.\n\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003djvm\nTest: ./art/tools/run-jdwp-tests.sh \\\n        --mode\u003djvm \\\n        --jdwp-path /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/libjdwp.so\nTest: ./art/tools/run-jdwp-tests.sh \\\n        --mode\u003dhost \\\n        --debug \\\n        --variant\u003dx64 \\\n        -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmtid.so \\\n        --jdwp-path /usr/lib/jvm/default-java/jre/lib/amd64/libjdwp.so\n\nBug: 62821960\n\nChange-Id: Ia28ba68232b6b9217f810cf0788355cf7f70b7ae\n"
    },
    {
      "commit": "65ee0f086581a8fbaa18473e8bac7ff9372cff0a",
      "tree": "6d12a9e9a0b74e59bf260a63e1140d2ff05f7afc",
      "parents": [
        "ad008d58ed0d2e12acf20a1900f5e45d215da775",
        "e017aa32ce25b360b5c3a77f7e2d3addb89281a8"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 18 08:10:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 18 08:10:50 2017 +0000"
      },
      "message": "Merge changes I2b8d8bc9,Iad2890b3\n\n* changes:\n  ahat: show sample path through strong references.\n  ahat: build ahat-test-dump correctly with javac\n"
    },
    {
      "commit": "e017aa32ce25b360b5c3a77f7e2d3addb89281a8",
      "tree": "3bf4b9eb2126419db952fee188fef46a9181dd36",
      "parents": [
        "0b21333dbdbcb02c96148456f409f1b7d1f20697"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 11 10:07:38 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Aug 17 11:36:07 2017 +0100"
      },
      "message": "ahat: show sample path through strong references.\n\nInstead of showing a sample path through weak references, which is\nmuch less useful for debugging why the object is retained.\n\nChange-Id: I2b8d8bc9368cdcabd7a369e45278ba9b44a38e40\nBug: 64592321\nTest: m ahat-test, with new gcRootPathNotWeak test added.\n"
    },
    {
      "commit": "0b21333dbdbcb02c96148456f409f1b7d1f20697",
      "tree": "913b2797fa89e647d3e05910c62101843136956e",
      "parents": [
        "54636c0e85ad1bcd5798324c0484122364e99298"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Apr 24 14:17:55 2017 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Aug 16 11:27:44 2017 +0100"
      },
      "message": "ahat: build ahat-test-dump correctly with javac\n\nUse BUILD_JAVA_LIBRARY instead of BUILD_HOST_DALVIK_JAVA_LIBRARY for\nahat-test-dump.jar so that no special handling is needed to enable\nproguard obfuscation. This way the ahat-test-dump can be obfuscated\nwhen compiled with javac as well as jack.\n\nBug: 64594350\nTest: m ahat-test, built from scratch\nChange-Id: Iad2890b314982b08da876595c3a093cd8ec9f7da\n"
    },
    {
      "commit": "79fd1d37d6eae0837dfc7bb340dfe557186c23d4",
      "tree": "d23578f597871c870852f9853e1b0c0d53515564",
      "parents": [
        "b22c4bd5c09923808909ae117c93688b53cee943",
        "54e59cb4c32d0cc59c19c88526f6dbec3fa4b715"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Aug 14 15:54:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 14 15:54:19 2017 +0000"
      },
      "message": "Merge \"Remove TimeZoneTest#testSetDefaultRace from blacklist\""
    },
    {
      "commit": "4b8d46c567a30354b84d6d4f87eae4b82183dcde",
      "tree": "d5f2441740ae7ec88146a2a594a5dfd0456352e8",
      "parents": [
        "4ec14ff3d6126750de753f7d162df408f278e825"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 11:52:23 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 11:52:23 2017 +0100"
      },
      "message": "Rename art script module to art-script.\n\nOtherwise it confuses the build system.\n\nbug: 64554602\nTest: build system image with SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue,\n      and no art script.\n\nChange-Id: I683d35d5079ab66d7f498f716d40eace8853d184\n"
    },
    {
      "commit": "2658193433e4b49d7dd9096db6cda8dbd6dce714",
      "tree": "f6f611f029c78530fd12a3c8183d684c97808f1f",
      "parents": [
        "e9b61bac34bea439d8ce39592973a66a32f43fb7"
      ],
      "author": {
        "name": "Sumnima Joshi",
        "email": "sumnima@google.com",
        "time": "Fri Aug 11 11:07:48 2017 -0700"
      },
      "committer": {
        "name": "Sumnima Joshi",
        "email": "sumnima@google.com",
        "time": "Fri Aug 11 12:59:07 2017 -0700"
      },
      "message": "Fixed an error in invokechanger\n\nTest: Ran dexfuzz until mutation showed up\nChange-Id: I7f75d1e173a2ac5fa63b059fdea532a3bef1b46d\n"
    },
    {
      "commit": "675c779cb046bca49229e1e5268d0eb622159214",
      "tree": "9ea467cdb99dd2cd4c09dbee01298fc014268571",
      "parents": [
        "52b450bd928a4096e7d9bed768757b41f4ed82e1",
        "9557d05dfcb8c7abb79af111b6ed1952cf25f15e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 11 18:09:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 18:09:47 2017 +0000"
      },
      "message": "Merge \"Added a new mutator called NewInstanceChanger.\""
    },
    {
      "commit": "9557d05dfcb8c7abb79af111b6ed1952cf25f15e",
      "tree": "9d8e1067a0c916a901228c979284eefb47e6ddde",
      "parents": [
        "ad7083187bef32afe6f350681ec47a27441442d0"
      ],
      "author": {
        "name": "Sumnima Joshi",
        "email": "sumnima@google.com",
        "time": "Wed Jul 26 16:31:42 2017 -0700"
      },
      "committer": {
        "name": "Sumnima Joshi",
        "email": "sumnima@google.com",
        "time": "Thu Aug 10 16:04:21 2017 -0700"
      },
      "message": "Added a new mutator called NewInstanceChanger.\n\nAdded a new mutator named NewInstanceChanger which changes the type of\nthe instance to any random type from the pool. Most of the times, it becomes\ninvalid after being changed. It tries to change the type of invoke direct that\nfollows. Also, the mutator makes a matching method id if needed.\n\nTest: ran dexfuzz until the mutation showed up.\n\nbefore:\n\nnew-instance v0, LX; // type@0001\ninvoke-direct {v0}, LX;.\u003cinit\u003e:()V // method@0000\n\nafter:\n\nnew-instance v0, LY; // type@0002\ninvoke-direct {v0}, LY;.\u003cinit\u003e:()V // method@0000\n\nChange-Id: I6eccaebf9910c177e9cff0b5d3ac058565c4331e\n"
    },
    {
      "commit": "178b3ad579569f785a484173c7996edba9a8e20b",
      "tree": "caa61dc4d651d25d0c07f684e72186c078fec192",
      "parents": [
        "18e91619f38349e29367567a70f2f974a8cdaf67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 09 09:49:42 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 09 09:49:42 2017 +0100"
      },
      "message": "Yet another slow gcstress/debug slow test.\n\nTest: run-libcore-tests\nChange-Id: Ia2c13190fa02f9e8a03d2d52046b47a50dd6a417\n"
    },
    {
      "commit": "c0c0785c4e300fc8e241a6ba9e85451e348dae41",
      "tree": "fa51a625af4363420a773d9489dceca804d57609",
      "parents": [
        "3b21019edb5586a73516833482fc203e75309dbe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 08 09:44:15 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 08 09:44:15 2017 +0100"
      },
      "message": "Add an option to the art script to not cleanup.\n\nUse it for jdwp tests, where the debuggee shouldn\u0027t clean up\nthe oat files generated by the debugger.\n\nTest: run-jdwp-tests\nChange-Id: I2f4c2066fac18c2cedb2b72d13186db4a8807e05\n"
    },
    {
      "commit": "3b21019edb5586a73516833482fc203e75309dbe",
      "tree": "fcef5458a721bad3d51d3fd1e1b614c7ec61fc81",
      "parents": [
        "a7c29837831c82e849036ea6f8018115c16dbb78",
        "0a87a653a296854c9a0abacd9bb1557ee4c4d05d"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 07 21:55:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 07 21:55:19 2017 +0000"
      },
      "message": "Merge \"Add two special runtime methods.\""
    },
    {
      "commit": "0a87a653a296854c9a0abacd9bb1557ee4c4d05d",
      "tree": "4763469d136f3879bbce93521827717dbe05bd5b",
      "parents": [
        "52a3c989f96984f9bc9e02620694fc44708a1df2"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 12 13:43:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 07 11:49:38 2017 -0700"
      },
      "message": "Add two special runtime methods.\n\nThis is in preparation for being able to deoptimize upon returning\nfrom a runtime method. We need to identify two special runtime methods:\nclinit and suspend-check since if deoptimization happens when returning\nfrom these two methods, we need to execute the dex instruction that\ncorresponds to the dex pc of the deoptimization point. A clinit can\nbe implicit for an invoke-static, in which case the invocation hasn\u0027t\nhappen yet so we have to execute the invoke-static in the interpreter.\nFor a suspend-check, the dex instruction for it hasn\u0027t been executed yet.\n\nTest: full run-test/gtest on both host and target.\nBug: 33616143\nChange-Id: Id1bdfcfa84a9ca27d5ee9da4b4a99467b1a4a845\n"
    },
    {
      "commit": "747497fcc05b24fae4666b97ebe8a08ffc216ca3",
      "tree": "76b9674cc355f7f5a318135f40c7b7b6b3eb4cb9",
      "parents": [
        "3fe0178a6b5e8ea6d66adc9bffddaea0cc99fd07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Aug 06 21:43:36 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Aug 06 21:43:36 2017 +0100"
      },
      "message": "Blacklist test under gcstress / debug.\n\nTest: run-libcore-tests.sh\nChange-Id: If4e1451f4d1aaf994156d73ccee418fe9a193fa4\n"
    },
    {
      "commit": "162a5707a315b4acef990953cacbe256bb4e5d8e",
      "tree": "cc3213706e2ee18c685aff7729fca1c3ccb41ae4",
      "parents": [
        "933692d93b037b99692c1ca839be75b6ab73b0a6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 04 09:28:32 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 04 09:28:32 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"tools: Fix art script to delete OAT files before running dalvikvm\"\"\"\"\n\nNeed to get coffee.\n\nThis reverts commit 933692d93b037b99692c1ca839be75b6ab73b0a6.\n\nChange-Id: Ibe2cc12e7d8be5cddc3d01fec0e0148fb07fbff2\n"
    },
    {
      "commit": "933692d93b037b99692c1ca839be75b6ab73b0a6",
      "tree": "24ffc59f4167494b7857d57db54587f9ef0d8a90",
      "parents": [
        "67ca49cfc31b06720bd3a1efcf2d9e03dcff779f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 04 09:25:04 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 04 09:25:04 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"tools: Fix art script to delete OAT files before running dalvikvm\"\"\"\n\nRegresses golem benchmarks.\n\nThis reverts commit 67ca49cfc31b06720bd3a1efcf2d9e03dcff779f.\n\nChange-Id: I380173831ca2e5c095fa1fdb2b6df7467108c5df\n"
    },
    {
      "commit": "67ca49cfc31b06720bd3a1efcf2d9e03dcff779f",
      "tree": "cc3213706e2ee18c685aff7729fca1c3ccb41ae4",
      "parents": [
        "a11100ee3ae6ef6a9000dc924e9a607a18ac1a2a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Aug 03 15:07:58 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Aug 03 16:04:27 2017 -0700"
      },
      "message": "Revert \"Revert \"tools: Fix art script to delete OAT files before running dalvikvm\"\"\n\nNow passes through the \u0027dalvikvm\u0027 exit code, which will fix the broken\nJDWP tests.\n\nThis reverts commit 800421b2ca697de71b70817129c5a02f8c5c818a.\n\nBug: 64162479\nChange-Id: I1cd924e32ac079f3f9e625a458c0606298c8e89b\nOriginal-Change-Id: Ief1784b48c78464da91e71a649a6cf4b57c51b41\n"
    },
    {
      "commit": "cda934e3f8c24d76cc3b1b64e24dd9b865cb500f",
      "tree": "ab8b7b8539a7f3fafc56a42242bf88ac3653441a",
      "parents": [
        "9a19be9c170e094c3e5ef991d018b476008112c5",
        "84f82b9972ec29bd05b1575ae6d638255be2f285"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 03 17:07:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 03 17:07:13 2017 +0000"
      },
      "message": "Merge changes Iba4cb348,I51c43230,Iae90c4a1,Ica43ee8a\n\n* changes:\n  Stop using the runtime classpath in dex2oat\n  Do not pass --runtime-arg -classpath in dex2oat_test\n  Do not pass --runtime-arg -classpath to dex2oat in dex fuzz\n  Pass the class loader context to dex2oat when optimizing at runtime\n"
    },
    {
      "commit": "54e59cb4c32d0cc59c19c88526f6dbec3fa4b715",
      "tree": "e5f479a2f3da2598c779c1c0f5fa5dceea3a022d",
      "parents": [
        "24ff0235ab631baccd49fb491197d86d1ef97279"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Aug 03 16:57:45 2017 +0100"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Aug 03 16:59:25 2017 +0100"
      },
      "message": "Remove TimeZoneTest#testSetDefaultRace from blacklist\n\n- The test is no longer time sensitive\n\nBug: 62528691\nTest: cts-tradefed run cts -m CtsLibcoreTestCases --test\nlibcore.java.util.TimeZoneTest#testSetDefaultRace\nChange-Id: I78b5ac6ef475b5565325de6cb6b6d07061169429\n"
    },
    {
      "commit": "14bc3254b7cfed8a9f60e6e6fb92d713557f010c",
      "tree": "e50abf6c86a089e6e1dbdf3c3a08a70210e7ae19",
      "parents": [
        "83c0fefa60998a9f344dd21c968234e40c8be965"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 03 12:00:18 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 03 12:00:18 2017 +0100"
      },
      "message": "Disable slow test on gcstress/debug.\n\nTest: run-libcore-tests.sh\nChange-Id: I154927eadbcd7b0850c6719e903ffa791ca94cfb\n"
    },
    {
      "commit": "4a9ab7d61f3933cbe26f01d7dc5bda1e65dcd567",
      "tree": "0ee1f28043c397170dfaefdbd3bf9fab790e6b27",
      "parents": [
        "60c730ab855598d79dd14b02c6e53c2355ba22ee",
        "800421b2ca697de71b70817129c5a02f8c5c818a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 03 04:46:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 03 04:46:14 2017 +0000"
      },
      "message": "Merge \"Revert \"tools: Fix art script to delete OAT files before running dalvikvm\"\""
    },
    {
      "commit": "800421b2ca697de71b70817129c5a02f8c5c818a",
      "tree": "a98d5aa42640fee99fcf7e1c7de6367d9814eaea",
      "parents": [
        "ad35190e30215f3bc905f897374a02bb3251a5fd"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Aug 03 02:48:05 2017 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Aug 03 02:48:05 2017 +0000"
      },
      "message": "Revert \"tools: Fix art script to delete OAT files before running dalvikvm\"\n\nThis reverts commit ad35190e30215f3bc905f897374a02bb3251a5fd.\n\nReason for revert: Breaks JDWP test that expects error code to be passed through from dalvikvm.\n\nChange-Id: I5fcd6d11dbe254fbcc4edebaeb9bf280956f6210\n"
    },
    {
      "commit": "46555f8c4a3a430cd5cfc8854c39bb565a72782b",
      "tree": "2281691f3385b180fa7c487504d08f78e15d3e5d",
      "parents": [
        "27e0d1f3da2e0b7046dacb40794739d739e454a3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 02 17:40:47 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 02 19:24:35 2017 -0700"
      },
      "message": "Do not pass --runtime-arg -classpath to dex2oat in dex fuzz\n\nThere is no need for it. It only adds the dex file to be compiled and that\nprovides no useful information to dex2oat.\n\nBug: 36044779\nTest: build and run the fuzzer\nChange-Id: Iae90c4a179f4784029dc77c0530506c5c8dfc158\n"
    },
    {
      "commit": "c7ba7f6aefb7c715fb3efc9db12cd0746f69d3b6",
      "tree": "bea2db8e9490ee2286a8b571889df5c6f6ade3a9",
      "parents": [
        "42e88a0e5ffaba52fcf0888b5cab0eff3e2ec351",
        "ad35190e30215f3bc905f897374a02bb3251a5fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 02 20:23:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 20:23:47 2017 +0000"
      },
      "message": "Merge \"tools: Fix art script to delete OAT files before running dalvikvm\""
    },
    {
      "commit": "ad35190e30215f3bc905f897374a02bb3251a5fd",
      "tree": "b338bcd84c83efebc77d0f7f7cf0ec6add197936",
      "parents": [
        "d54ac26d69f21d04af8e4d55a2fba6a7fa405f00"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 28 18:06:26 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 01 13:08:55 2017 -0700"
      },
      "message": "tools: Fix art script to delete OAT files before running dalvikvm\n\nThis way if the compiler filter (or other flags) are changed,\nre-running the art script will use the new options.\n\nIn particular it fixes \u0027art --profile\u0027, previously it would just\nreuse the OAT file from the first profiling (jit) run.\n\nTest: art --profile -Xcompiler-option --compiler-filter\u003dspeed-profile -cp generated/benchmarks.dex benchmarks.CaffeineLoop.java.CaffeineLoop\nTest: adb shell art --32 --profile -Xcompiler-option --compiler-filter\u003dspeed-profile -cp /data/local/tmp/benchmarks.dex benchmarks.CaffeineLoop.java.CaffeineLoop\nBug: 64162479\nChange-Id: Ief1784b48c78464da91e71a649a6cf4b57c51b41\n"
    },
    {
      "commit": "52a3c989f96984f9bc9e02620694fc44708a1df2",
      "tree": "d0b4beb13f6401eefb742973da840cc6696b808d",
      "parents": [
        "951853a68554d1bc5f50980194f1686cb5f41d83",
        "e0ef0a80878aa53d9b16495e4c72c04802ec559b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 01 18:24:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 18:24:12 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"tools: Read ANDROID_COMPILE_WITH_JACK from build\"\"\""
    },
    {
      "commit": "06c42a571358b5e5adb69104b183af8f32f4c07d",
      "tree": "7b218fdb67fef74cdcbc2e3665757485ef89918b",
      "parents": [
        "7f14c2ec37c70010d99cab6806d85018df56c555"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 14:17:14 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 31 07:38:43 2017 -0700"
      },
      "message": "ART: Move openjdkjvmti to art/\n\nMove libopenjdkjvmti out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m test-art-host\nChange-Id: Idb6b9cebcd61777bd3200437a2ae584a63a4a341\n"
    },
    {
      "commit": "7f14c2ec37c70010d99cab6806d85018df56c555",
      "tree": "b06280436183a7c4cf637ced3a8b2e46fe186b53",
      "parents": [
        "b46e8761147cb3fe047c64f867c505dcc75cef5a",
        "d54ac26d69f21d04af8e4d55a2fba6a7fa405f00"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 31 14:24:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 31 14:24:02 2017 +0000"
      },
      "message": "Merge \"tools: art script fix for spuriously creating \"{arm,arm64,mips,mips64,x86,x86_64}\"  directory\""
    },
    {
      "commit": "d54ac26d69f21d04af8e4d55a2fba6a7fa405f00",
      "tree": "a98d5aa42640fee99fcf7e1c7de6367d9814eaea",
      "parents": [
        "aed968d130d62d23cfe7f6051ca72c6a84fe1510"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jul 26 11:16:23 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 28 15:10:40 2017 -0700"
      },
      "message": "tools: art script fix for spuriously creating \"{arm,arm64,mips,mips64,x86,x86_64}\"  directory\n\nAlso removes hardcoding of the architectures list.\n\nManually tested with/without --profile, on host/target, and with non-rooted adb.\n\nTest: art -cp benchmarks.dex BenchmarkMain\nChange-Id: I4cec02bb80c905bfce174135e8c2a6b6dd6ac42d\n"
    },
    {
      "commit": "e0ef0a80878aa53d9b16495e4c72c04802ec559b",
      "tree": "02564dd2de11c49577f693b2afbd17d801ce55ac",
      "parents": [
        "d092e7477b175853bd178eebd163b27e1ba79639"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 21:29:18 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 21:29:18 2017 +0000"
      },
      "message": "Revert \"Revert \"tools: Read ANDROID_COMPILE_WITH_JACK from build\"\"\n\nThis reverts commit d092e7477b175853bd178eebd163b27e1ba79639.\n\nBug: 36902714\nChange-Id: I46699d639c0f1e8d7cc6190eebf49d023715b8cd\n"
    },
    {
      "commit": "d1183f449bf37a1b4fb34e7535ae3a65a544f003",
      "tree": "be751d6544c03dec6ed4e52d6f5f4a70caf0b1c7",
      "parents": [
        "65e514a0ba9eb6d159cee25d0a731d1e4e00a3c9",
        "38ae049b6ab1df1f45c5b5a15af9b64e1ee6db66"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 27 19:53:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 19:53:28 2017 +0000"
      },
      "message": "Merge \"Remove temporary bail-out on something that crashed jack often.\""
    },
    {
      "commit": "65e514a0ba9eb6d159cee25d0a731d1e4e00a3c9",
      "tree": "a3db6654ca6f8d29151095e727d775e77203b643",
      "parents": [
        "f6fe3cb9224f9e87974806ff03fc43f9e1f736cb",
        "3a9aa5b12afc8bb7585a4da2d47348e00d9809bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 18:41:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 18:41:19 2017 +0000"
      },
      "message": "Merge \"Prompt dx/jack setting of command line in failure report.\""
    },
    {
      "commit": "38ae049b6ab1df1f45c5b5a15af9b64e1ee6db66",
      "tree": "cbfc3d10412fd3358d4240542ae4f1bc6ec68dad",
      "parents": [
        "83e9e0efb03e2cb924b6544ca51626ff09d834d3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 27 10:03:41 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 27 10:06:18 2017 -0700"
      },
      "message": "Remove temporary bail-out on something that crashed jack often.\n\nRationale:\nNightly has switched to dx testing, so we can safely remove\nthis bail-out in favor of more coverage. Not sure if jack\nis still under development, but I hope this issue will\neventually be fixed still.\n\nTest: nightly fuzzing\nBug: 28862040\n\nChange-Id: I191f61334ab794beed83603305d664e051b20086\n"
    },
    {
      "commit": "3a9aa5b12afc8bb7585a4da2d47348e00d9809bf",
      "tree": "c4638ef1d06cca7dd79e99ceaacc5a637849e3b0",
      "parents": [
        "aed968d130d62d23cfe7f6051ca72c6a84fe1510"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 27 09:47:35 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 27 09:47:35 2017 -0700"
      },
      "message": "Prompt dx/jack setting of command line in failure report.\n\nRationale:\nThe automated script that files divergences in buganizer\nfor our nightly fuzz tests did not include whether run\nis with jack or with dx. This fixes that.\n\nTest: nightly jfuzz\nChange-Id: I7fca096e7b4758e35b8de8968e119e872d6793ab\n"
    },
    {
      "commit": "73264cc19172cd1a6d28e03d370e9d8634ac9f46",
      "tree": "866f8c9b02a1972a0070fd85b6d996b2dc9b3cf1",
      "parents": [
        "4c3de20b11c097875ed45a09cbd13c88f2582422",
        "d092e7477b175853bd178eebd163b27e1ba79639"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 06:04:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 06:04:02 2017 +0000"
      },
      "message": "Merge \"Revert \"tools: Read ANDROID_COMPILE_WITH_JACK from build\"\""
    },
    {
      "commit": "d092e7477b175853bd178eebd163b27e1ba79639",
      "tree": "cef0433bc2a897ed8afccc8d763922505543c1db",
      "parents": [
        "08e3397d83784f67f0e5f447e25f1f791fe650f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 06:03:00 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 06:03:00 2017 +0000"
      },
      "message": "Revert \"tools: Read ANDROID_COMPILE_WITH_JACK from build\"\n\nThis reverts commit 08e3397d83784f67f0e5f447e25f1f791fe650f1.\n\nBug: 36902714\nChange-Id: I4632dab64c2b1c4b5f842be07de81eb206e88ece\n"
    },
    {
      "commit": "4c3de20b11c097875ed45a09cbd13c88f2582422",
      "tree": "5f44515afd9560590af2effd0e930bb5f1245511",
      "parents": [
        "c932707bbddfe5d8c08253f5528678cd878775c6",
        "08e3397d83784f67f0e5f447e25f1f791fe650f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 26 23:52:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 26 23:52:40 2017 +0000"
      },
      "message": "Merge \"tools: Read ANDROID_COMPILE_WITH_JACK from build\""
    },
    {
      "commit": "aaeeb688c2f34f8572e14f3f05977cac1316267c",
      "tree": "4129c3492d62f978de9b5d592e2b4de60ec23a42",
      "parents": [
        "95caa2bea47b7ab6f0e72472b96304bbbbf41bd0",
        "8eb184999acf1eaf7b39f4caf4ad203b61f5133d"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Jul 26 23:13:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 26 23:13:53 2017 +0000"
      },
      "message": "Merge \"Add script to generate CMakeLists files used for CLion setup\""
    },
    {
      "commit": "8eb184999acf1eaf7b39f4caf4ad203b61f5133d",
      "tree": "478656ede0d6240065aab8d5812d7cc1f069dcf0",
      "parents": [
        "15a2958b488b9812a7d4d246d1653b11b63db610"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Jul 26 13:20:41 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Jul 26 16:05:01 2017 -0700"
      },
      "message": "Add script to generate CMakeLists files used for CLion setup\n\nTest: manual\nChange-Id: Ifd619b80395571e0d9f81767df065a8fb0febdbb\n"
    }
  ],
  "next": "08e3397d83784f67f0e5f447e25f1f791fe650f1"
}
