)]}'
{
  "log": [
    {
      "commit": "d6be5da75294d29060440a10e77f5d3461ed8d74",
      "tree": "2a92b0c53c3b40ef36cb8a81c4326b323d63b80c",
      "parents": [
        "ad909af6c4be163bf2d5f4ca1e0487cc619a5041"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Jul 16 17:14:46 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 10:28:27 2019 +0000"
      },
      "message": "Update references to the ART APEX for tests.\n\nTest: art/tools/buildbot-build.sh --host \u0026\u0026 art/test.py --host --64 --optimizing\nTest: art/tools/run-gtests.sh in chroot\nTest: art/test/testrunner/testrunner.py --target --64 in chroot\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64 in chroot\nTest: art/tools/run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64 in chroot\nBug: 135753770\nChange-Id: I876c5a2931970d6a75c1812e0f87bc65ab7bde0f\nMerged-In: I876c5a2931970d6a75c1812e0f87bc65ab7bde0f\n"
    },
    {
      "commit": "ad909af6c4be163bf2d5f4ca1e0487cc619a5041",
      "tree": "737bdd7957eb6c74ebaf126acfe0ff355f7b5f0a",
      "parents": [
        "6da456969b2b4294cda98e6d0bc16a4493ad9652"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Jul 16 17:02:44 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 10:28:27 2019 +0000"
      },
      "message": "Update references to the ART APEX.\n\nTest: Build \u0026 boot\nTest: atest CtsJniTestCases CtsCompilationTestCases CtsSimpleperfTestCases CtsBionicTestCases\nBug: 135753770\nChange-Id: I9635afaf7996407063a0d9ed474b95c0b0e4f890\nMerged-In: I9635afaf7996407063a0d9ed474b95c0b0e4f890\n"
    },
    {
      "commit": "ccb0b5fffa4b6e0bf501db90c6351e1a1584c648",
      "tree": "5a307224eb021007954f67edf625ee28d272e741",
      "parents": [
        "b3b803b69d5db392ea7cf7a1fea443d4ba133134"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 15 18:10:50 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 02 09:39:46 2019 +0000"
      },
      "message": "jitzyogte: madvise away dex files after compilation.\n\nTell the OS we don\u0027t need them anymore, as we now have compiled code\nfor it.\n\nBug: 119800099\nTest: business card\nChange-Id: Ib6f969dcc68adabad3327a3272147ee383416772\n"
    },
    {
      "commit": "323e8c616e12f98eb12b39b486aafe988dba202d",
      "tree": "789318a70be1a4b5a1b057a7d75f228b0ea79c2e",
      "parents": [
        "82e347bd4e0afa7ab3895c197cc36242cf169db1"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Aug 20 11:13:58 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Aug 20 12:10:46 2019 -0700"
      },
      "message": "Fix out-of-bounds read in ApiList::Dump.\n\nIn this loop i ranges from DomainApi::kMin to DomainApi:kMax, while API\nnames in kDomainApiNames are stored at indexes starting from zero, so we need\nto subtract DomainApi::kMin before indexing into kDomainApiNames. Found by\nrunning CTS under HWASAN with the new global instrumentation support.\n\nBug: 139749928\nChange-Id: Ib35c4494e7652cfaf84e07ff362210d67a50fba2\n"
    },
    {
      "commit": "759845ff57929e26bfe922b30c814cb58e886bc1",
      "tree": "91ed3883cbce398f08308e2cff119dea04eb21cb",
      "parents": [
        "77251f97137f6a9fd5e88b18b653d022996cd369"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Aug 06 16:04:36 2019 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Aug 12 15:36:42 2019 +0000"
      },
      "message": "Separate ICU4J from core-libart\n\n- It adds the new core-icu4j into boot classpath\n\nBug: 138994281\nTest: CtsLibcoreTestCases\nChange-Id: I6e8d971f304fe9f4836fcd73818720ed83d38154\n"
    },
    {
      "commit": "6461124331de7707f3b109cec38337d851be997e",
      "tree": "551fe08dc46d71f903244080f90df751d648adb5",
      "parents": [
        "3cb59a4e22bff5a06f5bcd1deb86e2580dd36de3"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Fri Jul 05 16:32:41 2019 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Aug 08 11:06:51 2019 +0000"
      },
      "message": "Remove icu .dat file from Runtime module\n\nBug: 137009149\nBug: 130295968\nTest: device boots\nTest: m out/target/common/obj/JAVA_LIBRARIES/ahat-test-dump_intermediates/test-dump.hprof\nTest: art/build/apex/runtests.sh fails due to bug 138103882\nTest: art/tools/buildbot-build.sh\nTest: m test-art-host-gtest\nChange-Id: I0501fd6dd02dac3cf9780f5f1c0103e4b0475e1f\n"
    },
    {
      "commit": "27351be1c1b7cabf714872b9fa40c7ccbefe9b76",
      "tree": "9dd463a7b490265ff143a98b15578394f1944077",
      "parents": [
        "cffa254b3b7c307b557ba2250fc822db352d3293"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 12 13:39:34 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 22 13:11:55 2019 +0000"
      },
      "message": "Switch-interpreter: Add flatten attribute to handlers.\n\nEncourage the compiler to inline the methods a bit more.\nThis speeds up the switch interpreter by about 1.5%.\nIt adds 7k of code (arm64).\n\nTest: test.py -b -r --host --64 --interpreter\nChange-Id: I59729d73fc39d486ba988d6685b166fbdd9fe6dd\n"
    },
    {
      "commit": "8d6651d8cc83d028cefc24153f4543a82dea4574",
      "tree": "cc18f2d7800bc8dc87c27de53b62e35aa632ff6d",
      "parents": [
        "6623594e6c65035c3096c8edcbf6374d22f6d4e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 08 10:03:16 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 08 12:02:47 2019 +0100"
      },
      "message": "Disable jit_memory_region_test tests on buggy kernels.\n\nTest: jit_memory_region_test\nChange-Id: I5339071ab1fcb9765a91015e33024d05774ac2b1\n"
    },
    {
      "commit": "3a614eaa58542169f2047ea6efeb5d6ece867be6",
      "tree": "149bdbbd1cf0d8d6db7570db6edb1accff728ed8",
      "parents": [
        "1be9c72dd49e7620dd76a8b9cef23d7cde0a6b01"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 15:47:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 12:06:39 2019 +0000"
      },
      "message": "Add more tests around JitMemoryRegion.\n\n- Test that dropping the writable mapping and keeping the readable one works.\n- Test using MADV_DONTFORK.\n- Test behavior of memfd when mapping MAP_PRIVATE.\n\nAlso move IsSealFutureWriteSupported to libartbase/mem_fd.\n\nTest: jit_memory_region_test\nChange-Id: If6392780595d968588041762a72d7fa46a7b0429\n"
    },
    {
      "commit": "88f3fd910cb0fbc1c2233fc65d2a30542cc62921",
      "tree": "6fcdd7d4e5bd60281d55e4be1bb155a219edc999",
      "parents": [
        "64f1f1f2d6cd13249601f7de2b9d1dab26480f78"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 16:32:13 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 28 14:19:08 2019 +0000"
      },
      "message": "jitzygote: madvise DONTFORK on writable shared region.\n\nSo only the zygote can write to the shared mapping.\n\nTest: boots\nBug: 119800099\nChange-Id: I9efde2c9c89dbc7445da890ee975effe13ba3790\n"
    },
    {
      "commit": "025bba4bea1ef5ee65bbe6c7484964a2ef53df9a",
      "tree": "5e52228b4b3eb8b32f414802ed66d1cb7e602381",
      "parents": [
        "91d772f9a7f7bca567825224c083b1bf823c2396"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 22:14:40 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 28 09:31:42 2019 +0000"
      },
      "message": "Stack maps: Micro-optimize LoadBits\n\nAvoid branching.\n\nThis speeds up CodeInfo by 5%, and maps startup by 0.05%.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ifb4418e1e6670d8f6c8901c8088d009a31844132\n"
    },
    {
      "commit": "591b1d26297fff3177a529adf0833d8a5eb2c463",
      "tree": "61d459d1e1cb23e9f3364b33f1cd735fd4004a3d",
      "parents": [
        "5254d6f23d6a3c8cde1634ce144a417d1cee3832"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 25 13:08:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:49 2019 +0000"
      },
      "message": "ART: Ensure SlowDebug is enabled in all gtests\n\nThis was missed when moving to common_art_test.\n\nTest: m test-art-gtest\nChange-Id: I0ff50983cf71bd86b32350222caac2a36a72ad4b\n"
    },
    {
      "commit": "aeb0223f14a9dbd9e7caaa177d055684b4819799",
      "tree": "d396dcddb3afa328d192776bc1856a48f5f52583",
      "parents": [
        "05f87217ddc9b4b9186710c0135b918f456c5aef"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 25 14:18:18 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 14:59:58 2019 +0000"
      },
      "message": "Retry cache flushes on ARMv7 devices\n\nOn ARMv7, CPU cache flushing requires a system call. This system call\ncan fail and return an error. This change moves to using the system\ncall directly (cacheflush) so flush failures can be detected and\nflushing can be re-attempted. For other platforms we continue using\n__builtin___clear_cache which is an intrinsic with a void return\ntype.\n\nThe strategy for ARMv7 is to attempt to flush the entire range\nrequired. If this fails (a rare occurance), we visit the pages in the\nflush range sequentially, first reading a byte from the page to\nmaximize it\u0027s chance of being resident and then flushing the cache\nlines. We repeat this up to 4 times per page if there are failures.\n\nAs a final fallback, when neither approach to flushing the JIT code\ncache pages succeeds, the code is not committed to the JIT code cache\nas the cache lines for the new code are in an unknown state.\n\nThis complexity is necessary for the dual view JIT because the\nexecutable range is not writable so the kernel logic does not\n(appear to) anticipate the need to flush (or invalidate) cache lines\nthere. Previously the failing cache flush operations went undetected\nand result in bad i-cache state and cause crashes. These issues have\nonly been reported on devices with 32-bit kernels.\n\nBug: 132205399\nTest: art/test.py --host --jit -j32\nTest: Manual (described in bug)\nChange-Id: I63b56beaac610ea973def0a57118be9a2647da23\n"
    },
    {
      "commit": "1e52a07b4de0f000028e55c332aa46495f60879c",
      "tree": "1eb7dfdce749461c5a8997cbde49ed6d0fea2aa0",
      "parents": [
        "e0ce8bf743b7fc5816bc4045716d75378ce3b654"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 09:12:04 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 16:25:13 2019 +0000"
      },
      "message": "Correct Indicies -\u003e Indices\n\nThis is a misspelling that is somewhat common in art/.\nFix up all the instances I could find.\n\nTest: ./test.py --host\nChange-Id: I0a5def6e4126cf4e61efb0619bd59eb45ba7f324\n"
    },
    {
      "commit": "145a18a3771e8a3ba5105a759d274efab3685431",
      "tree": "9fdbf8746b465e6c34be07573bfc7b90f149c475",
      "parents": [
        "89867bf1273fd76c6421b4f663076be08d6b51c0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 03 14:35:22 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 25 11:03:34 2019 +0000"
      },
      "message": "Stack walk: Cache CodeInfo and StackMap for current PC.\n\nThis speeds maps startup by 0.15%.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ic37eeba727148b877f21fdfacfa9f55558db88a7\n"
    },
    {
      "commit": "6c0c7c8226a80d0e56f071118f46e4491cfa7754",
      "tree": "80694b0df23e37b4eb0cc02fc7558682a600edff",
      "parents": [
        "9e18907c6736326fa2148bead641123498e4c53f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 28 22:28:36 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 24 14:19:24 2019 +0000"
      },
      "message": "Stack maps: Micro-optimize ReadInterleavedVarints\n\nDoing both operations in the same loop seems to trigger\nsome pathological case in clang\u0027s register allocator.\nSplitting the loops fixes it.\n\nThis speeds up CodeInfo by 5%, and maps startup by 0.05%.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: If0b88373069a755a82f0c9969a1f461f223fb62f\n"
    },
    {
      "commit": "6c4ec5c1555aaeddd254750c15554a3c47bfc722",
      "tree": "d0ef0588f0e625bfeb0f9b86305f45b6fd37260a",
      "parents": [
        "349845ae9c820484973959e1f3d366099d2fa0c2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 20 07:23:19 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 20 11:16:38 2019 +0000"
      },
      "message": "Revert^2 \"Stack maps: Interleave consecutive varints.\"\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\n\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nThis reverts commit 1b2a49b7aba39ed6663a69dfdf63d0df069f0d42.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ica7b42180ef2bae637445c0ce44fd3833ec0ecfc\n"
    },
    {
      "commit": "1b2a49b7aba39ed6663a69dfdf63d0df069f0d42",
      "tree": "15a22f6390135758cb9eeaa1ef816f4634cc70f9",
      "parents": [
        "a2b34561a7faca95d0a4f8194ad155798e238e37"
      ],
      "author": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:41:31 2019 +0000"
      },
      "committer": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:43:54 2019 +0000"
      },
      "message": "Revert \"Stack maps: Interleave consecutive varints.\"\n\nThis reverts commit a2b34561a7faca95d0a4f8194ad155798e238e37.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Ie5b220e429e101bb5fa2606665a9c8cb64308ad3\n\nBug: 135638469\n"
    },
    {
      "commit": "a2b34561a7faca95d0a4f8194ad155798e238e37",
      "tree": "2da4501b3fdd20e3d227869a4ce44eab03b79434",
      "parents": [
        "34087c1047b79b7ec83eb2f45cf4f70524e0f6f5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:51 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 19 18:24:04 2019 +0000"
      },
      "message": "Stack maps: Interleave consecutive varints.\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: I16f702389d4ba94a407b1586cae5f82b8ef60e7b\n"
    },
    {
      "commit": "1dd670c0fa3ee83125d412b7882a39a98e6503f6",
      "tree": "d253bfd5fcd229e4c4148a7a750b9f38b9f2d512",
      "parents": [
        "4cd5411c1e8332d3fc33869a87e61ed78052679d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 18 13:45:31 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 19 08:45:13 2019 +0000"
      },
      "message": "Add errno message in RemapAtEnd error.\n\nHelps debugging.\n\nTest: m\nChange-Id: I3d8f213e73aebdbe4cbd607bc3d9e9f07fb9a724\n"
    },
    {
      "commit": "697c47a7ffd4489c4bc4edc229c8123309526286",
      "tree": "04cf832df533fd529cc598ecff9be8c2763d61b8",
      "parents": [
        "8ac3dc5ec31569630a99caed2a69f64d84a6c0b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:07 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 18 11:35:05 2019 +0000"
      },
      "message": "Stack maps: Handle special cases using flags.\n\nKeep the BitTable decoder simple (1+NumColumns varints).\nMove special case handling up to CodeInfo (empty/dedup).\n\nThis speeds up CodeInfo by 5%, and maps startup by 0.05%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ib6abe52f04384de9ffd7cfba04a3124b62f713ff\n"
    },
    {
      "commit": "2411f49e8e3e9efb92958d689a9bab9fe9635638",
      "tree": "04f3bb5e048f15d244ae2637cc8bc4f001f3b7b0",
      "parents": [
        "77f84fcc257bba0b40cb123a748ecbd0a96726b2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 14 08:54:46 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 18 06:53:39 2019 +0000"
      },
      "message": "Add helpers to allocate JIT memory in zygote.\n\nThese helpers will seal the fd and prevent any new writable\nmappings from being made.\n\nUsing memfd when available, and falling back to ashmem if not.\nashmem being scheduled for removal, have that implemented in palette.\n\nBug: 119800099\nTest: jit_memory_region_test.cc\nChange-Id: Id32b6c52a2ec681295ea7eca5b77ab342c78b469\n"
    },
    {
      "commit": "d91f84166ad642bbd135acb8aadd05919ff41d85",
      "tree": "3aeab5845897abbcab5827b2c27e684f6e157219",
      "parents": [
        "90b3457f9c64efba370c51b216dabb164a40b1ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 13 10:11:14 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 17 15:21:00 2019 +0000"
      },
      "message": "ART: Log approximate arena usage for slow verifier runs\n\nAdd ArenaStack::ApproximatePeakBytes and ScopedArenaAllocator::ApproximatePeakBytes\nto get an approximate use when arena tracking is not enabled.\n\nPrint the approximate use for slow verifications.\n\nBug: 110852609\nTest: m test-art-host\nTest: manual\nChange-Id: I529838410cdf4fe8247ddf4a6196a8186b0c4f3a\n"
    },
    {
      "commit": "1adb04fd1ab7a44b5bf0e0d8deb522b68849a2f6",
      "tree": "603703c1dd65421cfd24b030339faa65584ba1b7",
      "parents": [
        "9ccea1da7946cb8a5e70d39f8c0c474196fdaca3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 13 16:22:31 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 14 15:50:20 2019 +0000"
      },
      "message": "Avoid coercing to key type in SafeMap\n\nSafeMap would immediately coerce the inputs to several of its functions\nto the key type. This could cause the inliner to fail to perform some\noptimization in some circumstances. By passing down the input\nunaltered we should get better optimization.\n\nBug: 135202227\nTest: ./test.py --host\nTest: atest CtsJvmtiRunTest1941HostTestCases -- --abi armeabi-v7a\nTest: atest CtsJvmtiRunTest1941HostTestCases -- --abi arm64-v8a\nChange-Id: I0d8c9f2cc43ef28bf2d043f6a96eadc9aa701cf4\n"
    },
    {
      "commit": "3fae12960c2d411dff450fce95c096af0e8d74de",
      "tree": "5cc26dc33db8f391b3c7ab1fe24546b17f33d389",
      "parents": [
        "b7c640d364d32b79cb52d04750b063667a9a0c86"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 07 11:26:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 11 08:58:34 2019 +0000"
      },
      "message": "Move IntrusiveForwardList\u003c\u003e to libartbase.\n\nIt\u0027s generally useful, not just for the compiler.\n\nTest: m test-art-host-gtest\nChange-Id: I3ca742d93a0bca961d1b8b8209356747d2de08a0\n"
    },
    {
      "commit": "90ffe12e1b0c430d8ed7aed0b22a6f1f946b22e9",
      "tree": "16b573566028bb05cca8839ff17e27142a733a80",
      "parents": [
        "7f7539b8ed0a31de1d1b6e1f0b730d55e37666a6"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 06 17:25:48 2019 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 10 10:53:05 2019 +0000"
      },
      "message": "Add sim of time zone data module files for target\n\nAdd a simulation of the time zone data mainline module for\nsome ART target test environments.\n\nThis change tracks a rename of build modules associated with\nthe runtime mainline module simulation (they now end in\n-runtime).\n\nIt also adds the files to simulate the time zone data mainline\nmodule by using new -tzdata build modules being added.\n\nBug: 132169989\nTest: Ran ART tests and a subset of Libcore tests on host and device\nChange-Id: I41e9bb86a6bfc23ed50f63620fa5813c4f582092\n"
    },
    {
      "commit": "dddb6dea9455950e0d79f7d697a00190e7387e66",
      "tree": "03b7f46ef41b447ea877a311d4e72833fa1e9ddb",
      "parents": [
        "54a6d4c123d968e272262892118e629f13d17000"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 31 14:29:54 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 04 04:18:29 2019 +0000"
      },
      "message": "ART: Remove superfluous logging\n\nRemove unnecessary logging used for debugging.\n\nTest: m test-art-host-gtest\nChange-Id: I271c9c10eea728d9e534a96d981cac095c6e2e8e\n"
    },
    {
      "commit": "67ba872df798271d2960be27c7f1e813259feabc",
      "tree": "93bb6a90a1e1810799faa0ab1e0d672ce041c0ed",
      "parents": [
        "436f6c1e53b735ace36fbfe48c337ece07d76e62"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 23 15:32:18 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 25 10:30:57 2019 +0000"
      },
      "message": "Optimize stack map decoding.\n\nWe usually read several consecutive varints.\nAdd helper method optimized for that use case\n(ideally reading 8 varints from single load).\n\nThis improves app startup by 0.4% (maps,speed).\nPMD on golem seems to get around 5% faster.\nCodeInfo::Decode on its own is 25% faster.\n\nBug: 133257467\nTest: ./art/test.py -b --host --64\nChange-Id: Iaf7e8469ed6397b1d1d4102e409b5731f7229557\n"
    },
    {
      "commit": "5bf2dbdceec5fd84470606b7c3e38aad620e6d51",
      "tree": "5575f2a7e19d13b13232b82c2f0d6b7da85dea50",
      "parents": [
        "2fb74d3087a3b8cf292e4450c7a76029733bf71c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 23 13:14:35 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 23 14:22:55 2019 -0700"
      },
      "message": "Use conservative permissions when creating files in ART\n\nUse 644 permissions by default so that only the owner has write-rights.\n\nBug: 130821293\nTest: host run-test \u0026 gtest\nChange-Id: I09eab9749d1ce5872ecaf7d5a80fc45c9c708853\n"
    },
    {
      "commit": "639e73b5ad1d96a1e67743735a13f7a268b455aa",
      "tree": "d362fd58d8e1ab68a512f3f0f33b0fe1384e0a26",
      "parents": [
        "f03b151a9b86bc47f501ec7ea0b71d0598e90d52"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 17 21:44:36 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 20 16:13:34 2019 +0000"
      },
      "message": "Revert^2 \"Add AddToDexClassloader JVMTI extension functions\"\n\nThis reverts commit 799e536da9733ab638946f56e1ceb62d62cd3c81.\n\nIt seems that on some of our test devices the kernel does not have an\nimplementation for memfd_create. To work around this I added a basic\nwrapper that will simulate memfd_create using temp files. This should\nbe sufficient for testing. All actual devices are expected to support\nthe memfd_create syscall natively.\n\nReason for revert: Implemented fallback for memfd_create\nBug: 132699522\nBug: 132914283\nTest: ./test.py --host\n\nChange-Id: I63b36464df24193fff27624c1e2350d65545ad1d\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "43e72433fd2115b4213b5db06568ebd1c550e7d1",
      "tree": "32b71a387354aaa09cbc07a146fc6f16a0eb6882",
      "parents": [
        "391be3ab96ebe8d9cc00849a3bb8058708416000"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 14 16:15:24 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 16 01:00:21 2019 +0000"
      },
      "message": "ART: Remove file_utils\u0027 ReadFileToString\n\nReplace with libbase.\n\nTest: mmma art\nChange-Id: Id042f4879485e743e3dc7548434be1634370ee66\n"
    },
    {
      "commit": "2388ae520a1d0904b4def15a8b77cef39429c883",
      "tree": "12a2173a8351e4c672b427c53fd47798381d6fc8",
      "parents": [
        "2f7a55c0370583954239c8b36bf1beb2665d8379"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 09 16:26:08 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 15 18:37:25 2019 +0000"
      },
      "message": "ART: Place conditionally needed include in #ifdef\n\nMingw\u0027s wchar.h has some broken macros that are bypassed when stdio\nis included. However, in general the stdio include is superfluous\nand a huge transitive dependency.\n\nTest: mmma art\nChange-Id: I07c95e2085f5b70a60fee0c2cafa72b30aca4d15\n"
    },
    {
      "commit": "3ba32d966cc836b997a9ac595f32504554b958e0",
      "tree": "1fcea75c134f2dd7e7471ca58a925d55ff302649",
      "parents": [
        "baa99adfc7154a9d8b12736752e44e199a5fbbf0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 09 15:43:34 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 15 18:36:58 2019 +0000"
      },
      "message": "ART: Remove assert include (iwyu)\n\ncasts.h does not actually use assert anymore.\n\nTest: mmma art\nChange-Id: If73095d50d91289c974110eb707b3b33932bed98\n"
    },
    {
      "commit": "f41232eecb55fe864ed9520074b23682daf29aaa",
      "tree": "cbabb81b5f718a0ae6b68aebf8c749ca5f040851",
      "parents": [
        "077872d54347bccc93e44d8c26192457b19ce0c7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 09 14:00:23 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon May 13 14:20:35 2019 +0000"
      },
      "message": "Incorporate additional feedback to native JNI checks\n\nBug: 124338141\nTest: m art_libartbase_tests_memory_type_table_test \u0026\u0026 \\\n      out/host/linux-x86/nativetest/art_libartbase_tests/memory_type_table_test\nTest: m \u0026\u0026 flashall \u0026\u0026 boot\n\n(cherry picked from commit fbbda47e032d5cf0db33d2ce671bd37def1058fd)\n\nChange-Id: I26f0a06cf36c2591f4dc30fc6dc3ed443bd8e4a4\nMerged-In: I26f0a06cf36c2591f4dc30fc6dc3ed443bd8e4a4\n"
    },
    {
      "commit": "077872d54347bccc93e44d8c26192457b19ce0c7",
      "tree": "f3256aa22fac418b73f9633a753d128939c8a017",
      "parents": [
        "2180d8e8d82874576017348a6d865ed629c77747"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Mar 06 11:00:52 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon May 13 14:20:35 2019 +0000"
      },
      "message": "Allow APEX binaries to access fields and methods via JNI\n\nAdds a native stack check for method and field resolutions via JNI.\nThis is part of checking the Core Platform API surface. Code outside\nof APEXes shouldn\u0027t be accessing internals as those may change.\n\nThe native stack walk determines first caller outside of libart and\nchecks whether it\u0027s from an APEX module or other code. The caller\nlookup employs a cache of executable pages in shared objects to avoid\ncosts of dladdr when examining program counters.\n\nThe overhead of this additional check is typically 50-400ns on per\nfield/method resolution via JNI as measured on a blueline device (see\nb/124338141 for data).\n\nBug: 124338141\nTest: m art_libartartbase_tests_memory_type_table_test \u0026\u0026 \\\n  out/host/linux-x86/nativetest/art_libartbase_tests/memory_type_table_test\nTest: Boot and observe no core platform api warnings from opengl\n\n(cherry picked from commit 80e9f700c29b1bcaa4535051eda57a5026cc12ed)\n\nChange-Id: Ie2f7217cdcbfb324cd98d65856fa8bc9967dfd19\nMerged-In: Ie2f7217cdcbfb324cd98d65856fa8bc9967dfd19\n"
    },
    {
      "commit": "5515310c7e83f8bd11f575fba7439edbd3bea4d9",
      "tree": "0aba86d671561b2148fb6e83b7767ccc996f1e2c",
      "parents": [
        "cbe6d4aa61b19c24f5c54cc90543b5ae359b67ee"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed May 08 17:03:10 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 09 23:37:03 2019 +0000"
      },
      "message": "Try harder to support gtests with non-standard build config\n\nOne is able to set the location android builds to using the OUT_DIR\nenvironment variable and android supports having this be a symlink.\nOur gtests, however would fall over if you tried to run it using the\n\u0027m test-art-host-gtest\u0027 with anything other than OUT_DIR\u003dout and out\nas a real directory. If you broke this convention many tests would\nfail because they are unable to find ANDROID_HOST_OUT.\n\nThis makes everything a little nicer by making common_art_test try to\nfigure out what ANDROID_HOST_OUT should be using the test binaries\nlocation and commandline.\n\nTest: export OUT_DIR\u003dfast-out\n      ln -s /some/other/path fast-out\n      . build/envsetup.sh\n      lunch aosp_walleye-userdebug\n      m test-art-host-gtest\n\nChange-Id: I67cdba43ef3050afe394cd03b14a43d309d020e2\n"
    },
    {
      "commit": "cbe6d4aa61b19c24f5c54cc90543b5ae359b67ee",
      "tree": "c14927e22aa73c15426877f0967e0ddcefd9e75f",
      "parents": [
        "efdd1b0c818b9040b506c023d739e7ccd0714f47"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 09 10:29:52 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 09 21:13:46 2019 +0100"
      },
      "message": "Fix double loading check for Darwin\n\nRename globals.cc to globals_unix.cc and fix-up in the blueprint file.\n\nThis fixes the build failure on Mac when running (hiddenapi) due to the\ndouble library loading check.\n\nTest: make -j12 PRODUCT-sdk-sdk sdk_repo (completes on OS X)\nBug: 132163727\n\n(cherry picked from commit 6a3c67e534313e0bc69ff5cd71e7197cefece9fb)\n\nMerged-In: I5b7392ac94398ac00c1e703895c639f0e6469141\nChange-Id: I5b7392ac94398ac00c1e703895c639f0e6469141\n"
    },
    {
      "commit": "70d91fe71d3fbc122a271128c92ad6f0f86b93a1",
      "tree": "8b99a2905cdd374633ad7a3ee1206d996ae8910b",
      "parents": [
        "055cf9a459d2198aca19bacd1183b5c2538945a5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 07 08:58:05 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 07 08:58:05 2019 -0700"
      },
      "message": "ART: Disable check for Mac\n\nDisable for investigation.\n\nBug: 132163727\nTest: m\nChange-Id: I7164747452598cfb333511651fb1058b48464f76\n"
    },
    {
      "commit": "1389dd450eb257bbe48e94b2917c60d64fa10fe7",
      "tree": "da3f8ca00f986719b8e4fb111433244359d06088",
      "parents": [
        "b2a8964f4218c2c52dacf599ebf5cf69f8753bf0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 03 22:43:12 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 06 23:45:14 2019 +0000"
      },
      "message": "Track libziparchive API change.\n\nBug: http://b/129068177\nTest: treehugger\nChange-Id: I6632e246bf76f535a14de5e521bcdf65481ef544\n"
    },
    {
      "commit": "765b2a04576f4e985a88165456f5ee55cdfe56b8",
      "tree": "1eb91d1e6dcdee31b5b396ee0ed8baf8c94aca96",
      "parents": [
        "023533677989028d48f4e64dad0a5b3b4e59b726"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 02 11:04:13 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 03 19:46:42 2019 +0000"
      },
      "message": "Add -verbose:interpreter\n\nAdds a mode to track what methods are being interpreted. Good\nfor debugging interpreter usage during app startup.\n\nBug: 130185360\nTest: test-art-host\n\nChange-Id: I8119f79e534cdad7d6a72d4f01115a288e9c8d9a\n"
    },
    {
      "commit": "b74f307cda4b1b186dcbdf6c84f1ee02a50ad3cb",
      "tree": "080b8c9b4317e2b5f4c942d0c7be6dbb18200dfa",
      "parents": [
        "1db789ea17f87415a38d72066ca0baf3f5252474"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 01 15:19:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 02 15:59:33 2019 +0000"
      },
      "message": "ART: IWYU for HiddenApi domain\n\nMake the domain a known char storage and forward-declare in DexFile\nto significantly reduce the list of transitive includes. Fix up\nmissing includes.\n\nTest: mmma art\nChange-Id: I9d43113e982fc0b509fd9a8168c6788e9431500a\n"
    },
    {
      "commit": "356864a74f9069bdc26a64f670d070feaacb5dc9",
      "tree": "71298ee8751539e10287d2b8b000ebd10ff820a5",
      "parents": [
        "ae09081da9aef7fd45d6d805c9ec64cc291569a2"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Apr 30 16:22:17 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed May 01 14:30:34 2019 +0000"
      },
      "message": "Add libdexfiled_external to the debug Runtime APEX.\n\nFollow up to http://r.android.com/943476. This library is only available in\ndebug builds of the Runtime APEX.\n\nTest: Flash and boot with eng build\nTest: adb shell ls apex/com.android.runtime/lib\\*/libdexfiled_external.so\nChange-Id: Ib6bbfacc19416ac1221a962f111b3937e61193e7\n"
    },
    {
      "commit": "6ae463f33c71805ca3f8572513bb507c472bcf6d",
      "tree": "499753903b999eceb926015f8791ae70121b3d5c",
      "parents": [
        "d112012197d2a6b4c96a710737b35d50d75098aa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 01 11:55:01 2019 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 01 11:55:01 2019 +0100"
      },
      "message": "hiddenapi, class2greylist: Add support for greylist-max-q\n\nTest: set maxTargetSdk\u003dQ on an API, compile, check hiddenapi-flags.csv\nChange-Id: I05b3418d76bdb2ef34a717e199abdda73f73ffd7\n"
    },
    {
      "commit": "7711c35fa603b86d520991c4e97ca297add81881",
      "tree": "ce476e232ecf0176c5c9bed81f1528a1c6801fab",
      "parents": [
        "39239870737e3669ff1f85475458e5f57ed79194"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 17:50:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 08:11:20 2019 +0000"
      },
      "message": "Fix debug/release dependencies on libartbase\n\nWe load both the debug and release build when running tests.\nThe different builds have different layout of some classes,\nwhich can currently result in random native heap corruptions.\n\nFix the build dependencies to avoid the double loading,\nand add runtime check to avoid it in the future again.\n\nTest: test.py -b --host --64\nTest: test.py -r --target -t 001-HelloWorld\nChange-Id: Ie62f91dc06209c91e25ba5f11c9d61243ac7579d\n"
    },
    {
      "commit": "c36a8ccf44454f1a4b8b57420205faf11dec7046",
      "tree": "189c0baf0cf748669712b0fc3c734d229386d8ab",
      "parents": [
        "5fe1b23d54303a1adf91b644f26f6df066e175ed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 29 13:37:42 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 29 15:29:38 2019 +0000"
      },
      "message": "Handle empty uncompressed and aligned dex file in an archive.\n\nReturn an error message for it. Callers expect it.\n\nTest: dex2oat_test\nBug: 131175467\nChange-Id: I55c05f0a9c48cea252869f88740c6338b5b28b1f\n"
    },
    {
      "commit": "240cb2aa3c660f070e1fb1d630e01c13ba57c194",
      "tree": "9307a4763a99517b93db11c235db4c76606e7ca7",
      "parents": [
        "2cc9d343550d22e08536e0077893e6d86647c91a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 26 13:25:45 2019 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 26 15:48:27 2019 +0000"
      },
      "message": "FileUtils: Do not expect Android root without an ending slash\n\nLogic for constructing paths in IsLocationOnModule assumes that Android\nroot is provided with a starting slash and without one at the end. Even\nthough our default settings match that, some users have reported crashes\nwith a custom ANDROID_ROOT env variable. Change logic to support both.\n\nBug: 130817106\nTest: set ANDROID_ROOT and compile\nChange-Id: Id83ca985b05bd4e8f85d7ca0b4c8aeea98aa21ee\n"
    },
    {
      "commit": "7c5acbb122485b6215dc34defc1f19e07390bb95",
      "tree": "af0889bb17ef622b8c51d9f110991ca025caef16",
      "parents": [
        "51c655847f2f7d2a9127574d3aeda12755014608"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 13:54:52 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 25 20:41:37 2019 +0000"
      },
      "message": "ART: Fix some types\n\nUse better types and fix some typing issues exposed by clang-tidy\u0027s\nreadability-implicit-bool-conversion.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I787d291a4843a3192a84853d105d57377b774b23\n"
    },
    {
      "commit": "1973687350e8431d316655c00fc0701c0e1c4597",
      "tree": "6701f8260fddb39cb2663de86e2d12d8777bc331",
      "parents": [
        "f339cca5748b341a3dadbf0586b2c63598ee61c8"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Apr 22 10:20:22 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Apr 24 16:46:59 2019 +0000"
      },
      "message": "Clarify histogram logic.\n\nDocument constructor assumptions. More explicitly check them.\nMake it easier to see the correctness argument for GrowBuckets().\n\nAvoid using CHECK_ALIGNMENT for something that isn\u0027t an address.\n\nTest: TreeHugger\nChange-Id: I2256bd400607044a817c25674ab9ade1d3a1f451\n"
    },
    {
      "commit": "dd8e222922520237a06375d877028a6a61d12698",
      "tree": "447c56778ce3b0aa0f203d683ed1b8e99785a5c5",
      "parents": [
        "fb6a5c00ef02cda7ea919d717daaf46abd0414e4"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 05 15:31:55 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 12 13:47:09 2019 +0100"
      },
      "message": "Use art::GetAndroidRoot instead of ANDROID_HOST_OUT in art::CommonArtTestImpl.\n\nDo not use the environment variable ANDROID_HOST_OUT to find the\nAndroid Root in art::CommonArtTestImpl; rely on art::GetAndroidRoot\ninstead.\n\nTest: m test-art-host-gtest\nChange-Id: I89fc9288164b57bc3f6542864cece312b6df2fd1\n"
    },
    {
      "commit": "fb6a5c00ef02cda7ea919d717daaf46abd0414e4",
      "tree": "9ecfaac9bee174b3b31e0294c46c4d32a5f7b714",
      "parents": [
        "f160394fda141184f0ec3d139ec5ca810f142bda"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 29 20:20:16 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 12 13:47:09 2019 +0100"
      },
      "message": "Add and use art::GetAndroidRuntimeBinDir.\n\nThis method returns the location of the directory containing the\nAndroid Runtime binaries, which is expected to be the Android Runtime\nAPEX\u0027s bin directory on target and the Android Root\u0027s bin directory on\nhost (at least for now).\n\nAlso remove art::CommonArtTestImpl::GetTestAndroidRoot as it is no\nlonger used.\n\nTest: ART gtests on host and target\nBug: 121117762\nChange-Id: I4593bbd4d675ca9d3f7b708482aac82c1892a9ad\n"
    },
    {
      "commit": "50eec3d36d805874e1611e9df829b1313ef711bb",
      "tree": "014971f52c9e955c686fab58a6420c5d37bec233",
      "parents": [
        "dc2fbb6d9834733214c6cdedbacd526603754a74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 05 18:53:58 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 12 10:59:09 2019 +0000"
      },
      "message": "Adjust the dladdr-based introspection logic used in art::GetAndroidRootSafe.\n\nThis logic originally assumed that the libartbase library linked into\nthe current binary was always located in a directory within the\nAndroid Root. This is no longer true on target since libartbase moved\nto the Runtime APEX; therefore we now only use that logic on host in\nart::GetAndroidRootSafe.\n\nEventually we should be able to use this logic on target to find the\nAndroid Runtime Root (in art::GetAndroidRuntimeRootSafe), as\nlibartbase is installed in the Runtime APEX. However, this is not\nalways true at the moment, as ART gtests still install another copy of\nlibartbase in /system/lib(64) (the Android Root) on target.\n\nAlso improve the documentation of methods `art::GetAndroidRoot(Safe)`\nand `art::GetAndroidRuntimeRoot(Safe)`.\n\nTest: m test-art-host-gtest-file_utils_test\nBug: 121117762\nBug: 129534335\nChange-Id: I835207110dae0a550c06ac98ed4915241cc61c6f\n"
    },
    {
      "commit": "2df4bfb2abf922a3c7972333f2bcc9655b122080",
      "tree": "c91685abc0bebe9539addf8dc42dfd5075b3475d",
      "parents": [
        "3e8aae03770a4acceff2f7fb7d6db68e05602d84"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 10 00:30:35 2019 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 11 06:57:08 2019 +0000"
      },
      "message": "Do not check if known locations exist on host for hidden API\n\nHidden API access checks compare the domains of the caller and the\ncallee which are set based on the locations of their respective dex\nfiles. When preopting on host, these are the expected paths on target\nbut helper functions in file_utils.h used to check whether they exist\non the local filesystem. This resulted in not always assigning the\nsame domains as when running on target.\n\nWith this CL, the functions ignore the DirectoryExists check on host.\n\nTest: art/test/testrunner/run_build_test_target.py art-test\nBug: 129063331\nChange-Id: I1143e94a31e3ee8303db07469cc03959ab5732b7\n"
    },
    {
      "commit": "3e8aae03770a4acceff2f7fb7d6db68e05602d84",
      "tree": "297b7f7cfeb82f352da84333f7fd584b8d0f8718",
      "parents": [
        "40594870058427d6d1090f18c216f9dd155421e2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 26 18:48:02 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 11 06:57:08 2019 +0000"
      },
      "message": "Fix dex location of boot oat files during preopt\n\nDex location should reflect the path on target when preopting\non host. This previously did not hold and this patch fixes the\nissue. Other paths remain the same as before. A DCHECK is added\nto class linker to guarantee that -Xboot-classpath-locations is\nnot ignored.\n\nSimultaneously it refactors the logic for resolving a relative\npath to make it clearer which path is used for opening files\n(dex file name) and which reflects the location on target (dex\nlocation), as these differ when preopting.\n\nThe patch also adds a missing dex2oat dependency for oat_file_test.\n\nTest: test-art-gtest-{host,target}-oat_file_test\nTest: compiles, no DCHECK crashes\nChange-Id: I0629c7ee505b5fd50649800bb3e08efc1ee44102\n"
    },
    {
      "commit": "2e3cb5486f197f25b010edc7bdeb3994b93f45fc",
      "tree": "90d22a19284469d885f7fac7320c93cddf4919b3",
      "parents": [
        "1ed4515facecea8dd5801eca752768043e4de01d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 05 18:00:04 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 10 12:31:09 2019 +0000"
      },
      "message": "Refactor art::GetAndroidDataSafe and art::GetAndroidData.\n\nMake these methods return an `std::string` (instead of a\n`const char*`), like similar methods of libartbase/base/file_utils.cc.\n\nTest: m test-art-host-gtest-file_utils_test\nChange-Id: Idf9ab45db3607d6079eaa8305e02b3483961f373\n"
    },
    {
      "commit": "a8d23cb7febebc44ddfc03a3a135bb983eb95029",
      "tree": "6228c445b8321eec2c813802aefa7ce593acee64",
      "parents": [
        "1ea8a62e320cb53b65910093b35240b3139b2cfa"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 08 11:29:11 2019 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 08 20:20:18 2019 +0000"
      },
      "message": "Use CommonArtTest for dexlayout, dexdiag\n\nUse the non-Runtime CommonArtTest for dexlayout and dexdiag.  Also,\nmove some lines that should have been put in common_runtime test.h.\n\nBug: None\nTest: build test-art-host-gtest\nChange-Id: Ie2f7feb1c62de4994ea2eac368d352634e088e74\n"
    },
    {
      "commit": "1ea8a62e320cb53b65910093b35240b3139b2cfa",
      "tree": "1a596634a00b144f3e8fbd07fee30f9f6866d4d8",
      "parents": [
        "eaa4831142fa58f176ddad52c0d5e9c288e26b81"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 29 19:08:56 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 08 16:40:00 2019 +0000"
      },
      "message": "Add art::GetAndroidRuntimeRootSafe and art::GetAndroidRuntimeRoot.\n\nTest: m test-art-host-gtest-file_utils_test\nChange-Id: Ib1f188e448b46891ae6fea713a5e92f5e160f060\n"
    },
    {
      "commit": "9ff900dbb1ea9a617a73924104890aad868d265a",
      "tree": "dfa6b4f5429ee0417ae24c26f2114984149325fc",
      "parents": [
        "163c8aba763f40c3e36e0b3f1a10b69904b96923"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 29 18:50:01 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 08 12:34:06 2019 +0000"
      },
      "message": "Replace more literal strings with constants in libartbase/base/file_utils.cc.\n\nAlso use more uniform names for some of these constants as well.\n\nTest: m test-art-host-gtest-file_utils_test\nChange-Id: I2bae31b242497d6e0275912c392b032ed1d623bb\n"
    },
    {
      "commit": "527072e915c58b67005d5e687cf727bf89c7884a",
      "tree": "54e5ce57f38c1b0f6bd4ed61b3d65661abf57ded",
      "parents": [
        "b9a05b003aa07196dd51ea7d61d87e468b5d688d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 03 15:15:40 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 16:25:17 2019 +0000"
      },
      "message": "Enable InMemoryDexClassLoader vdex only for Q+ targets\n\nSome legacy apps depend on InMemoryDexClassLoader not loading classes\nimmediately. Disable verification result caching for them.\n\nBug: 2131483\nTest: art/test.py -b -r -t 692 -t 693\nChange-Id: Ie230b837c2fdd5cda13e06faba501fe07e1f65bc\n"
    },
    {
      "commit": "39402548017c99f9b33afaa851f412371013e911",
      "tree": "80c4d53cb7ae12ab9f4800cb358e53d5109593da",
      "parents": [
        "2fde9bdc252e209d722f83410f2ced42ab73e8a4"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Mar 24 02:47:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 29 18:18:00 2019 +0000"
      },
      "message": "Modernise code to use override specifier\n\nGenerated by clang-tidy, with IgnoreDestructors option enabled.\n\nTest: m checkbuild\nBug: 116509795\nChange-Id: I5dafa10c2cf605165581b8cf7dd2633ed101ed65\n"
    },
    {
      "commit": "d7e9bbf092b5a61048358fd54183526ef12284af",
      "tree": "620cee17c499bdb23217224b0b1332408d725a6e",
      "parents": [
        "bb206de72135271e66e58576b1196f3e08d5b6fd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 28 13:18:57 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 29 09:50:00 2019 +0000"
      },
      "message": "Clean up explicit conversions to ObjPtr\u003c\u003e.\n\nAdd an ObjPtr\u003c\u003e::DownCast() overload that takes a plain\npointer and remove unnecessary calls to MakeObjPtr(),\nusually preceding DownCast(). Move the MakeObjPtr() to\ncommon_art_test.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I2a243b6d8f3b2e773396dfc53b659c5f7d9ea44a\n"
    },
    {
      "commit": "d53f60658fb0d28279919cc856a55e4b6504dabe",
      "tree": "2e152d283254df61f7b18738a67e5fbce453c54b",
      "parents": [
        "fe1d952a9912bf597174dc636d0f87db06a8d925"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 14:55:21 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 27 15:11:58 2019 +0000"
      },
      "message": "Partially disable building ART for host on Mac.\n\nBuilding ART for host on Mac is not currently needed.\n\nBuilding ART for target on Mac still works.\n\nThe main motivation is remove the custom elf.h from the code base.\n\nBug: 73344075\nTest: \"m -j40\" on Mac.\nChange-Id: I4b6f7aa7b291dcb6d751374ecf8d15f35877bd2e\n"
    },
    {
      "commit": "423bebb17f15c3867a52315f0ae421f08f14544f",
      "tree": "97bdf50c7144ae21e6abfe8bdc26858a6a10f94d",
      "parents": [
        "93d99f3665cbd890509f4c707e1a62c5f26d320e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 15:17:21 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 27 09:45:20 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify mirror::ObjectArray.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I611b3e49d3feed306f6cd35d2b662a1e727e24c6\n"
    },
    {
      "commit": "b9c29f625bc27968d80f9eafa988dc14af0a1c28",
      "tree": "10276cd3fa756646b41cb50cf396476f2f8df1d3",
      "parents": [
        "bcd99bed472d228a1a0a65adc606346d7daf6b93"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 20 14:22:51 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 10:27:28 2019 +0000"
      },
      "message": "Hide conscrypt package classes for app AOT compilation.\n\nSince app AOT compilation is usually done without conscrypt\non the boot class path, classes defined by app class loader\nin conscrypt packages could be resolved differently, i.e.\nfrom conscrypt, at runtime. Reject such definitions during\nAOT compilation to ensure correct runtime behavior.\n\nAdd a test that when compiling the conscrypt module as an\napp, we cannot resolve any class defined in its dex files.\n\nTest: module_exclusion_test\nBug: 122937705\nChange-Id: I1fcb4c21937f59772206ee50b688a75053231bc0\n"
    },
    {
      "commit": "c2109c6803a5b7c23b0d59f67d13d58f97111e5b",
      "tree": "6d51f55486e734bbae5565496c2792cc35f6655c",
      "parents": [
        "09d3576c2acda0785047cf830a228e413a36e757"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 20 13:34:39 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 21 05:10:27 2019 +0000"
      },
      "message": "Fix possible overrun bug for resolving startup strings\n\nMoved the ResolveConstStrings after verification and added logic to\nonly resolve strings for classes that verify. This fixes a bug\nwhere invalid Dex bytecode could cause dex2oat to crash.\n\nBug: 128915540\nTest: test-art-host\nChange-Id: Id2e5e4b10e5afbb8955e805d199754bc255a2f42\n"
    },
    {
      "commit": "26a5dd6fd1d65de29ba85e4bb61d9267dd428238",
      "tree": "952cdd73cefa3be7554e35dc2e9651b3054b7c29",
      "parents": [
        "d0430bfe6e08f932fa15b159457a5430f5b3ec25"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Mar 13 15:16:35 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Mar 18 16:08:05 2019 +0000"
      },
      "message": "Add support for ANDROID_TZDATA_ROOT\n\nSoon, code in the Android Core Library / ICU4C library will depend on the\nANDROID_TZDATA_ROOT environment variable being set. On device this points\nto the root of the com.android.tzdata module.\n\nUnlike ANDROID_RUNTIME_ROOT, ANDROID_TZDATA_ROOT it doesn\u0027t have to point to\nanything that exists because the code will fall back to looking in\nANDROID_RUNTIME_ROOT if it can\u0027t find the files it is looking for. Most\nof the changes in this commit are plumbing to make sure the environment\nvariable is set to benign defaults or passed through to the runtime.\n\nThis commit has been put together by looking for usages of\nANDROID_RUNTIME_ROOT and duplicating the logic.\n\nBug: 128422035\nTest: build only\nChange-Id: I2fd73fe16f5022742aaf634be158765cac8759e6\n"
    },
    {
      "commit": "bfaba288427e80e7941e49c4264ba8f6cd6d97d1",
      "tree": "db8e893b87c2406275c82599d43e9b9a5b0f895c",
      "parents": [
        "7dd0f0f2b4af0b15389ca8624bde93e1fb7ed776"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 15 11:35:51 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Mar 16 07:34:43 2019 +0000"
      },
      "message": "Fix buildbots hidden_api_test\n\nTarget buildbots set /system to be the runtime module root because they\nare running without an apex. The test assumes that /system dex files are assigned\nto the application domain but here they get assigned to the core-platform domain.\n\nAdjust the domain setting logic to check if the runtime module root is\ndistict from the android root (as a proxy for \u0027is running with apex\u0027).\nIf not (as is the case with the buildbots), skip checks against apex\nlocations.\n\nTest: m test-art-target-gtest-hidden_api_test\nChange-Id: Iff3890ec69cb04a1e4ed5bc2a3b5c652ada05f36\n"
    },
    {
      "commit": "370a06477c418a2887528a593601a99c2ab828cd",
      "tree": "2ca2ce4611e0e66936a22500f9e0c1d32a7e64dd",
      "parents": [
        "60ee778ea7cff778f95fafe63138f336def9fb18"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Mar 01 17:48:27 2019 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Fri Mar 08 16:22:09 2019 +0000"
      },
      "message": "Differentiate system and test apis in whitelist\n\n@SystemApi and @TestApi entries in the whitelist can now be\ndifferentiated from the rest of the public apis.\n\nTest: m test-art-host-gtest-hiddenapi_test\nChange-Id: I2929cd5d48b760af92fc3cc7061039da9fe94f67\n"
    },
    {
      "commit": "3c83921510c849cd43b90ab6094abce232c8c088",
      "tree": "f635ef8dbed33154d55254f892f234ff49860154",
      "parents": [
        "d51e574e05a66bd6706f6e9e05f8abe0f8581551"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 04 14:29:50 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Assign conscrypt to core-platform hiddenapi domain\n\nConscrypt accesses internals of libcore, assign it to core-platform\ndomain accordingly.\n\nBug: 125701194\nBug: 119068555\nBug: 127269864\nTest: compiles, boots, no violations conscrypt\nChange-Id: I3ee26d8cebcc9c74bd9f3e6e03278378efe9db43\n"
    },
    {
      "commit": "e7e26d10a7a1446b42c00104b162bf07e7c01a04",
      "tree": "fb571d4903a499d9effae5940440af5159b8548e",
      "parents": [
        "815d5e5304a5b57db64d6829813a14e464d5c55f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 28 15:04:14 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Assign non-runtime /apex/* dex files to platform domain\n\nUntil now only /system/framework and /apex/com.android.runtime were\nknown locations, assigning \"platform\" domain to the former and\n\"core-platform\" domain to the latter. The media and conscrypt modules\nwere left in the \"application\" domain.\n\nThis patch adds a hardcoded path to the apex root and assigns all dex\nfiles in subdirectories to the \"platform\" domain. This affects both\nconscrypt and media modules.\n\nAny other dex files on boot classpath are also assigned to \"platform\"\non first access. A warning is printed in such case and it is now deduped\nto avoid logspam.\n\nBug: 125701194\nBug: 119068555\nTest: compiles, boots, no conscrypt/media warnings about missing domain\nTest: art/test.py -b -r -t 674\nChange-Id: I33bef18459741095d3d99b541fc88b21cf547800\n"
    },
    {
      "commit": "de1b2a2113b9e2c44b90c441177060142c7abbfd",
      "tree": "1e710fb3c5fdf8c11858a6a2418a53a5ad1ab1d8",
      "parents": [
        "ffe26cc54fac4f1997e5dbf6991da9e95ce49e31"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 09:10:57 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 12:44:48 2019 +0000"
      },
      "message": "Revert \"Revert \"Add support for booting with a boot classpath not fully AOTed.\"\"\n\nThis reverts commit 14bfeddf2e434954f0ca36687ac0fc5dc6412bd3.\n\nReason for revert: Removes obsolete DCHECK\nBug: 119800099\n\nChange-Id: Ia984f95300c6b96165f0179bfc2f66b012bf5dbe\n"
    },
    {
      "commit": "14bfeddf2e434954f0ca36687ac0fc5dc6412bd3",
      "tree": "59b23768c4d886e99bd81968e0eaf26ff2160a37",
      "parents": [
        "e55ea985ab4f77ca9557e33a2d29dc1a1f0ac078"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 22:16:07 2019 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 23:59:26 2019 +0000"
      },
      "message": "Revert \"Add support for booting with a boot classpath not fully AOTed.\"\n\nThis reverts commit 7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9.\n\nReason for revert: Breaks debug mode\n\nBug: 119800099\nBug: 126239181\nChange-Id: I2d4a79f957a020cc6404a130536a416daebc94e3\n"
    },
    {
      "commit": "de3e70ff45450a54f02ff6f11c39ea9e45d6decc",
      "tree": "fefb3c7d5799667ab49237273147fed76ffed3cb",
      "parents": [
        "77182cd0f4527538df832eddbc775391c283cffb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 12:07:29 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 16:17:05 2019 +0000"
      },
      "message": "Move to new glibc in the tree.\n\nBug: 125632645\nBug: 125778437\nTest: prebuilt_tools_test\nChange-Id: Id4c7eca4e8c976e2b23c4d489805abfff694ac13\n"
    },
    {
      "commit": "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9",
      "tree": "3e84a40b0da5f826cbfd5ff4fb93c0b3dd4355e3",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 01 10:52:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 19 17:59:31 2019 +0000"
      },
      "message": "Add support for booting with a boot classpath not fully AOTed.\n\nBug: 119800099\nTest: adb shell setprop dalvik.vm.boot-image \"/system/framework/nonexistent.art\"\n\nChange-Id: I6641399f43c24702f19f4d976c6054d77186799e\n"
    },
    {
      "commit": "6c70224ebd667b52a862f850893f6528af63f3e8",
      "tree": "43e1ed17ee7fdfd7081cb07e11700b77c38a5a52",
      "parents": [
        "8581e2a234b562880c1d6c6b5ad14d23f7b597ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 16:17:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 17:19:20 2019 +0000"
      },
      "message": "Replace MergeSets() with std::set::merge().\n\nAnd clear up ownership of the VerifierDeps being merged\nby using std::unique_ptr\u003c\u003e.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 123750182\nChange-Id: Id4ffa9f9fa1968fa762b9e825f25827240f6d45d\n"
    },
    {
      "commit": "8581e2a234b562880c1d6c6b5ad14d23f7b597ed",
      "tree": "460059a1717d7507fa2854c3d458ce0250ba2bbd",
      "parents": [
        "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 15:54:55 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 14:13:58 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view.\n\nThis replaces the last few StringPiece uses and removes\nthe stringpiece.h.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I1bb5d05df47319b6ca386db01e14ce048ae54daf\n"
    },
    {
      "commit": "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6",
      "tree": "16e82b22829a269dcb7b8c305bb0a44c6f74c58e",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 17:38:26 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 12:29:35 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in profman.\n\nAnd in dexoptanalyzer and hiddenapi, see below.\n\nThe parsing helpers in utils.h were mostly unused, only\nprofman was calling one of them, so move that helper to\nprofman and rewrite and fix it, remove the other helpers.\nThis exposed dependency of dexoptanalyzer and hiddenapi\non StringPiece indirectly included from utils.h, thus we\nreplace it with std::string_view also in those tools.\n\nDuring the rewrite, avoid using std::string_view::data()\nas a null terminated string, prefer to fall back to the\noriginal null terminated raw option instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: Ibeec8069a5d82ea556e03e4577812f94dca6f387\n"
    },
    {
      "commit": "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34",
      "tree": "9360a99feb7a1aa6fe7b2685429ddb49b17a5e7c",
      "parents": [
        "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
        "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "message": "Merge changes I14c7cddd,I4a39d0e8,I3f24c8f4,I9699f138\n\n* changes:\n  Replace StringPiece with std::string_view in art/runtime/.\n  Replace StringPiece with std::string_view in HashSet.\n  Replace StringPiece with std::string_view in Signature.\n  Replace StringPiece with std::string_view in class.h.\n"
    },
    {
      "commit": "2ef01100bb56b3f8ab5fbc886a7066d721290d74",
      "tree": "a60e1265e2b1e733832047417e93a9c3ae1e6165",
      "parents": [
        "eb37ba594146338bf7e7e2bf3769d08046fb263f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 15:05:10 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:05:12 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in HashSet.\n\nUpdate HashSet comment and related code. Also remove dead\nCompilerOptions declarations with StringPiece parameters.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I4a39d0e8e0392a414129369c5b304ec4813e9ed5\n"
    },
    {
      "commit": "eb37ba594146338bf7e7e2bf3769d08046fb263f",
      "tree": "7fac104aed3aec8d8390c8cbe1f7fbd85b4f998a",
      "parents": [
        "e027d727b833930f1bd0029bc1b2cf750d8af5da"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 14:10:38 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 12:24:10 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in Signature.\n\nAnd also in Signature-related code. Remove the function\nDexFile::CreateSignature() which was used only in a test\nas the test can use method searching functions that take\nstd::string_view instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I3f24c8f4f677e2e40503dbab347df1eb031b4132\n"
    },
    {
      "commit": "22e22236cc12c977c01a8d10d4cc0906fc5ead2e",
      "tree": "1df2e62e339e51b58e682df9a668ff5f3099dfe5",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "message": "ART: Use C++17 extract/modify/insert pattern.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I2721948a566cc11d351324d173b4e1c8e5e54f53\n"
    },
    {
      "commit": "119733d87242414100df7b9eedb6d1672a03ead6",
      "tree": "19ba75bd42d3c94a4de0684ae66f4078da1546a6",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 15:14:41 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 31 15:39:55 2019 +0000"
      },
      "message": "Revert \"Revert \"ART: introduce PALette abstraction layer\"\"\n\nThis reverts commit e6e01a0a00de80704ccb21c48d5d8bdee4470b77.\n\nBug:  122824298\nTest: art/test/testrunner/run_build_test_target.py -j50 art-test-javac\nTest: m out/target/common/obj/PACKAGING/hiddenapi-stub-flags.txt\nTest: frameworks/rs/build_rs.py\nChange-Id: If7b9ddca3daa80b75b3541abd283bf47d5b81118\n"
    },
    {
      "commit": "e6e01a0a00de80704ccb21c48d5d8bdee4470b77",
      "tree": "8f9cc651764686140accaadcfb8f77bf7572c24b",
      "parents": [
        "4b9d00aca9b025b545c9633b4605334c22fc4d2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "message": "Revert \"ART: introduce PALette abstraction layer\"\n\nThis reverts commit 4b9d00aca9b025b545c9633b4605334c22fc4d2d.\n\nReason for revert: breaks renderscript mac and run_host_tests in master.\n\nChange-Id: I6024894a384c65f3e7d81b9c5bba8ebe8ce1b420\n"
    },
    {
      "commit": "4b9d00aca9b025b545c9633b4605334c22fc4d2d",
      "tree": "7984bf247f908d145b7c6b48df99f3f0a80ae148",
      "parents": [
        "4ee4561f2153f3b0bc3be2e781488a97c73ca58e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 03 17:04:02 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 09:00:27 2019 +0000"
      },
      "message": "ART: introduce PALette abstraction layer\n\nThis change decouples direct dependencies on system libraries.\n\nBug: 122824298\nTest: art/test.py --host --64\nTest: art/test.py --target -j8\nTest: m -j100 \u0026 flashall -w \u0026 device boots\nTest: art/build/apex/runtests.sh\nChange-Id: Iae927ed9aaa228a941cd444cef04e6ec53955299\n"
    },
    {
      "commit": "ca6d54388fd35b5bc9b2f1d52fb54b81c5577c56",
      "tree": "fa86b0fb46d0b76bfb5faa9eec63b54e58ccabca",
      "parents": [
        "cec980dc66f6470ad29705d4b9aaae74f1db8685",
        "12162de4cd7fe726c51789630b8b45ca55f39bb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 23 06:38:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 06:38:58 2019 +0000"
      },
      "message": "Merge \"hiddenapi: check for CorePlatform domain\""
    },
    {
      "commit": "12162de4cd7fe726c51789630b8b45ca55f39bb8",
      "tree": "dbdc00e9d253731e3e44d09591ca409336531e65",
      "parents": [
        "fbfba6a7d4b8892a2ce2de006ff3a767163ed05b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jan 21 16:01:30 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 22 21:02:15 2019 +0000"
      },
      "message": "hiddenapi: check for CorePlatform domain\n\nSet Hidden API Domain to CorePlatform if dex file is in the Runtime\nModule.\n\nBug: 119068555\nTest: 674-hiddenapi\n\nChange-Id: I24475098deb6f8d9d51d218ab1a8ee0caf01ae81\n"
    },
    {
      "commit": "a966376ac9ea3bf3b52ae52d47985d4967a99c3d",
      "tree": "5c92a75c2e613905c0e6b363e33bee452b1182d7",
      "parents": [
        "fbfba6a7d4b8892a2ce2de006ff3a767163ed05b",
        "de6c7145b3214f5c8a580b8bb73ea980d046a3a1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 22 14:01:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 22 14:01:15 2019 +0000"
      },
      "message": "Merge \"Adjust thresholds for pretty printing size.\""
    },
    {
      "commit": "de6c7145b3214f5c8a580b8bb73ea980d046a3a1",
      "tree": "8d15ba2343471d73c9de21fc99761124b6a053eb",
      "parents": [
        "e0c33a29811343e634b7445b7c0aac3c9a6a8f73"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 09 11:27:40 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 22 10:16:16 2019 +0000"
      },
      "message": "Adjust thresholds for pretty printing size.\n\nEnsure that the printed number has at least 2 significant digits.\n\nTest: Check ANR report.\nTest: test.py -b --host\nChange-Id: Icb3d252a2026431072fbab4f3337d50a2f72b342\n"
    },
    {
      "commit": "e7681823f8259c8c04ce0c361746216606784e69",
      "tree": "8bd248fc6be126d7d4e55bb4072ed24b2851ebbd",
      "parents": [
        "90faceb71e25748172ba6369209f8a2a66735394"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 16:25:33 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 10:22:27 2019 +0000"
      },
      "message": "hiddenapi: Print warnings for @CorePlatformApi violations\n\nWhen accessing a method/field at runtime, determine the context of both\nthe caller and the callee, and add new logic for the case\n\"platform -\u003e core-platform\" which used to be always allowed.\n\nIf the callee is marked with kAccCorePlatformApi, access is allowed.\nIf not, a warning is printed into logcat.\n\nBug: 119068555\nTest: 674-hiddenapi\nChange-Id: I64839596bf6eb06d7a169fd59b18fd82c140ce6e\n"
    },
    {
      "commit": "90faceb71e25748172ba6369209f8a2a66735394",
      "tree": "64707bbd718b29de9a19c01b12b0cc872685bb13",
      "parents": [
        "62a4bcf3fe11e6800f5d451b41003c135358ed6a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 14:36:15 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 09:48:59 2019 +0000"
      },
      "message": "hiddenapi: Support \u0027core-platform-api\u0027 flag\n\nAdd support for parsing @CorePlatformApi stubs and encoding it in\nhiddenapi dex flags of the corresponding fields/methods.\n\n(1) The CL refactors hiddenapi::ApiList class to store a second value:\na bit vector of \"domain API\" flags. These are intended for encoding\nmembership in a set of API stubs only available to certain callers,\ne.g. @CorePlatformApi when platform code calls core platform or\n@TestApi for CTS tests.\n\n(2) Parse @CorePlatformApi stubs and set domain flags for its members.\n\n(3) Parse the flags at runtime and set kAccCorePlatformApi access flag\non the corresponding ArtField/ArtMethod objects.\n\nBug: 119068555\nTest: m appcompat\nTest: dexlayout -b \u003ccore-oj jar\u003e | grep \u0027CORE-PLATFORM-API\u0027\nChange-Id: Idbfa6d3af7459258a5a0b6da7c03c037a577eb75\n"
    },
    {
      "commit": "62a4bcf3fe11e6800f5d451b41003c135358ed6a",
      "tree": "afa2a9caad5eec12d8cd22cd3ea67b2a065ddbc2",
      "parents": [
        "ed9e0c9a5462bbb805000cb9483e334cda867b48"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 13 17:00:06 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 09:48:59 2019 +0000"
      },
      "message": "hiddenapi: Produce CSV for `list` command\n\nThe `hiddenapi` build tool is used for generating a list of all public\nand private API. The output is currently two text files, each with\na list of API signatures belonging to the corresponding API set\n(public/private). Refactor the code to produce a single CSV file\ninstead in anticipation of other categories of APIs, namely\n@CorePlatformApi.\n\nAlso change class2greylist, which is a consumer of the public API text\nfile, to parse and filter the CSV file instead.\n\nBug: 119068555\nTest: compiles, hiddenapi-flags.csv unchanged\nTest: atest class2greylisttest\nChange-Id: I4ac9d96c0d10a87795c6a779f0231269c99959a3\n"
    },
    {
      "commit": "2259f1c008bee88902057ecc2ca1b91fe4e74bd7",
      "tree": "376098e43ea9cacbfd4aa5360f7cfd7c3df96c84",
      "parents": [
        "4706ff08bd26dc958d3f162894b92036b02cdeb7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 16 23:18:30 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jan 17 16:26:14 2019 +0000"
      },
      "message": "Extend lifetime of CodeInfo in StackVisitor.\n\nUsers of the visitor may use the API after WalkStack is finished.\n\nTest: test.py -b --host\nBug: 120844051\nChange-Id: Ia445d3b4c5c338402c92f1d29b522a33cd5baa14\n"
    },
    {
      "commit": "b4a70ceda602eb1a5a7c2742c9eab305cd5eed7b",
      "tree": "c0fd1671efc279be3308de4149a2bf8c82434026",
      "parents": [
        "3b5dd3e4211ea30906652b823891e19a43a32159"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 09 15:49:05 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jan 14 16:09:44 2019 +0000"
      },
      "message": "Remove core-simple from the boot classpath\n\nThis is an effective revert of commit\n1391390a775ca54fa1dd22ceccf211eae84073ea but with changes\nto account for modifications made since it was committed.\n\nTest: build\nBug: 119301609\nChange-Id: I28039a960ce5358744565f8943489677138a892c\n"
    },
    {
      "commit": "8764dc3b3eda7f6f13ed7b584475503fe5bedd59",
      "tree": "e8f6e3a4a2596595ffdc8a517daaf37030482eae",
      "parents": [
        "49b74a8c685acfe43dd33e3f51a24c486388bee1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 15:20:12 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Use iosfwd more\n\nUse iosfwd where an include of ostream is unnecessary. Also move\ncallee_save_type.h to runtime.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Id8995d6f524e4c491eb6f57fdffb940cf35d291f\n"
    },
    {
      "commit": "5a0430d0239481f4efb252d60ec9641703b8d456",
      "tree": "cd7bdb45d94e7af3aa3e1bbb5958f930bcee29f6",
      "parents": [
        "b9b995738c8f53d68446d14553c1befd487877e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 04 14:33:57 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:20 2019 -0800"
      },
      "message": "ART: Introduce runtime_globals\n\nSplit libartbase\u0027s globals.h into actual globals, and runtime-\ndependent globals which should live in runtime.\n\nBlanket-convert all runtime/ inclusions.\n\nIn future CLs, the number of global constants should be reduced.\nFor example, GC types are only relevant to GC/alloc functionality.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I2d8cd32e0e7ab4084d2f2e96864b5338a78da94e\n"
    },
    {
      "commit": "9d9227ae2d8806446fa3e60870d0e8df5e5c9377",
      "tree": "adb174eac909e16705e95bb6e8b23759ebe96249",
      "parents": [
        "163a37ad5f2d0b16bdd32fb8964580991900049a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Dec 19 12:32:50 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Jan 07 21:41:30 2019 +0000"
      },
      "message": "Build dexlist, dexlayout, and profman for Windows\n\nBug: 22322814\nTest: wine on linux on a large dex file.\nChange-Id: I93a89253799715de54e1c52213595b0749a5f47f\n"
    },
    {
      "commit": "10db8feb19c0d9e0383142b3d1a3c793de1c9453",
      "tree": "8b59078f2742c60f369b2f20a198aad2fad54566",
      "parents": [
        "5c030d3c25b958b8d3157d4cc7d807fa89786fec"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jul 18 11:01:20 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Dec 18 21:27:49 2018 -0800"
      },
      "message": "Support Windows builds for libartbase/libdexfile\n\nEnable building key libraries for windows tools in the SDK.\n\nBug: 22322814\nTest: run dexdumps on a large APK under wine on Linux\nChange-Id: Ib7180f8385300244bf914e9ae1f993e869f71109\n"
    },
    {
      "commit": "891fdcf7193af9f5d31815e1c7343fdd7e124123",
      "tree": "5fd8c6fd2a845cdf032758165a2eaed136bd609d",
      "parents": [
        "570886357e2c91ac913f34abdaf559432ce00853"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Dec 17 15:16:56 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Dec 17 18:00:18 2018 +0000"
      },
      "message": "Handle art::ProcessCpuNanoTime invocations on macOS.\n\nReturn the process wall clock time instead as an approximation of the\nprocess CPU time, as we cannot reliably use clock_gettime() on all\nversions of macOS.\n\nTest: m dex2oat (on macOS)\nBug: 121130576\nChange-Id: I2f1d2d9766e7a57b27d8d823ba22da46c308f88c\n"
    },
    {
      "commit": "ea65b21890ba1256a84bcfa15493e132f90fae4c",
      "tree": "d3afd1c49c9b26c39ddffd1b9d7ac9b0d375f3fc",
      "parents": [
        "500b4da0e8d5746bfc75baa9db3d57f51a0af6af"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 13 13:32:13 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 15:09:19 2018 +0000"
      },
      "message": "Add apache-xml to boot class path for tests.\n\nAnd partially revert\n    7a85e70b2bf646d1d7a226fbb4e7fafb66871dd5\nand fully revert\n    d4291d68c5dffd992ed8d46d0785d24a5da80026\nto re-enable tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests --mode\u003dhost --variant\u003dX64\nTest: run-libcore-tests --mode\u003dtarget --variant\u003dX64\nTest: run-jdwp-tests --mode\u003dtarget --variant\u003dX64\nBug: 120526172\nChange-Id: I5af4853cae84bfc4807d98668b2da2fd9c5fc22e\n"
    },
    {
      "commit": "0ace5633680af8864b76b4f45d63b3407e4dcdf5",
      "tree": "526435a2877d3d04eaa471238b4efd37a347d05d",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 11:11:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 13:12:15 2018 +0000"
      },
      "message": "Revert^2 \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit fb83d76a8b186df05f874216b535f5ad57e7bd02.\n\nFixed host run-test dependencies, cleaned up target run-test\nand gtest dependencies.\n\nTest: rm -f out/host/linux-x86/framework/conscrypt-hostdex.jar\n      testrunner.py -b --host --optimizing -t 660-clinit\nBug: 119868597\nChange-Id: Ia0a5aba0223ae6616bf3e109daf0af7b8355d048\n"
    }
  ],
  "next": "99e17397f7c4d5a1927c33160209156f411aeeed"
}
