)]}'
{
  "log": [
    {
      "commit": "02db072528792ab5ebb4ab4757a739b4dbd5617d",
      "tree": "71d516be22c9e1b826ebcbd3a51a19c3192dd910",
      "parents": [
        "b53d3b6aa48c799c95fd6fc45579c41dfd25cea3"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Aug 07 14:56:59 2020 +0100"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Thu Aug 13 13:42:10 2020 +0000"
      },
      "message": "Rename api lists\n\nUse more inclusive terminology for hidden api lists: blocked(blocklist),\nunsupported, max-target-* and sdk (go/hiddenapi-list-renaming).\n\nBug: 162500436\nTest: build and check hiddenapi-flags.csv\n\nChange-Id: Id25fabe25450a8d1f4776c526b208716e2d06ff9\n"
    },
    {
      "commit": "fc12a6cb415b2eacee0459fd170490a407c2548a",
      "tree": "f3b8508544e7320635146d0458e612e4b6f735d9",
      "parents": [
        "0f5784886faf0281a7b06eba35105ee68f1e5a00"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Jul 29 19:52:34 2020 +0100"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Mon Aug 10 12:27:13 2020 +0000"
      },
      "message": "Rename ApiList::Value enums\n\nUse a more inclusive terminology for the API lists. This change focuses\nspecifically on the ApiList::Value enum values. The string equivalents\nwill be changed separately, as they have multiple extra dependencies.\n\nBug: 162326106\nTest: m\nTest: m test-art-host-gtest-art_hiddenapi_tests\nTest: art/tools/run-gtests.sh\n\nChange-Id: I1dccf59ecc9e08b60dbd1bfed6ce438b5ce081d0\n"
    },
    {
      "commit": "f81d06cd7471585bb9c87c70f7ae849f452a2931",
      "tree": "b2337298e147f938edc27b017f2e9a1010a83c36",
      "parents": [
        "b2f2a49fca2004f8047e2539fc3dfb3998407905"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jul 29 18:30:49 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 30 08:31:58 2020 +0000"
      },
      "message": "Fix missing return in non-void TransformArrayRef::end\n\nTransformArrayRef::end() is not void but it does not return any value.\n\nThis CL fixes this.\n\nTest: transform_array_ref_test\nTest: run-gtests.sh\nChange-Id: I0bed31cae9fc3eb83f9a254393f6700471793d2a\n"
    },
    {
      "commit": "26ab270882523210c44bf156211283936471bbf6",
      "tree": "3ae1cb1d37a5e4facc39443f3ccbe76f3b486460",
      "parents": [
        "5880c77e9153b953952507cb924ce3ee8511e084"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 29 09:54:10 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 29 09:57:28 2020 +0100"
      },
      "message": "A few more inclusive language updates based on newer wordlist\n\nBased on:\n  https://source.android.com/setup/contribute/respectful-code\n\n#inclusivefixit\n\nBug: 161336379\nBug: 161896447\nTest: art/test.py --host --64\nChange-Id: I7e6362556136ce1a3085fffae7598104fa5bc56a\n"
    },
    {
      "commit": "43d7c65d8ff3097122acf9fcb4c45ae6ccd71f3a",
      "tree": "2d906752379b283cd691f7d1c5e5a569f1a6e852",
      "parents": [
        "2d4552035130474bdad7f7f30ffe50bc5f9d5d85"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 13:22:37 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 18:21:37 2020 +0000"
      },
      "message": "Match debuggerd timestamps in SIGQUIT dumps.\n\nAn OEM asked for sub-second granularity for debuggerd and ART.\n\nWhile I\u0027m here, add the UTC offset that\u0027s in the debuggerd timestamps\nbut not in the ART ones.\n\nBug: https://issuetracker.google.com/161860597\nTest: kill -QUIT zygote\nChange-Id: I6b834689bd71bf7f4b2a74cc0045f60d1c6af020\n"
    },
    {
      "commit": "8ebd86ea2ea9eac96d48db88c65364d56ff3b8ab",
      "tree": "8d4009c204136af090ec904a35168572b06c1b1a",
      "parents": [
        "07f78906212edb684b3bf046d1bb661613f81c22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 12:49:24 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 14:50:45 2020 +0000"
      },
      "message": "Replace \"dummy\" in libartbase/, libdexfile/, compiler/.\n\nTest: m test-art-host-gtest\nBug: 161336379\nChange-Id: I5335b28b1f66cdec39500563385bda99c580454d\n"
    },
    {
      "commit": "07f78906212edb684b3bf046d1bb661613f81c22",
      "tree": "0ec73044ed2802adb637972ed701935883f445a5",
      "parents": [
        "c92e7032d2f9417c675788268a33396384ec8a13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 11:35:12 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 13:09:09 2020 +0000"
      },
      "message": "Replace \"dummy\" with \"placeholder\" for MemMaps.\n\nTest: m\nBug: 161336379\nChange-Id: I0b9e94bb4fe288668aa578507e141f09ea84ccba\n"
    },
    {
      "commit": "75c8b635178d0c59691c2bc22f3bd1101d5516b5",
      "tree": "77577769dcf3ee62200396ebbdb908ab37fdb732",
      "parents": [
        "2d53643ca0e05e7c67894aa75eba899acbb9f287"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 14 15:31:02 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 24 09:51:04 2020 +0000"
      },
      "message": "Take into account custom OUT_DIR in gtests\n\nCustom OUT_DIR settings need to be taken into account when checking\nthe ANDROID_HOST_OUT and gtest locations.\n\nTest: m test-art-host-gtest\nChange-Id: Iba0d11b6ad85ea32731fa6afe54608bacd66dcb9\n"
    },
    {
      "commit": "2d53643ca0e05e7c67894aa75eba899acbb9f287",
      "tree": "39299475c04303312f527bc00355bd9fd7a3fad8",
      "parents": [
        "cefebc86af30522bf79d2a89a2bcf96f7f970ecb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Wed Jul 22 14:33:00 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 00:41:56 2020 +0000"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: m -j checkbuild cts docs tests\nChange-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4\n"
    },
    {
      "commit": "c607092fda93d8d9a52ec8ee2fddd6a685a6785a",
      "tree": "5dbdc81dba0a3344fe4e633632adb018572d19dd",
      "parents": [
        "3060bb919cd2f37c6a97e87c1581ac5294af72b3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 16 11:06:32 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 16 17:05:50 2020 +0000"
      },
      "message": "Fix golem build\n\nART_CLANG_PATH is not defined (or needed) on golem.\n\nBug: 147817558\nTest: m build-art-target-golem build-art-host-golem\nChange-Id: I635b7b86fb8120954d206601590df42b505e87cf\n"
    },
    {
      "commit": "7400a5466a04f9a274d262c5cb1fd35ff496839a",
      "tree": "8e4d617b0e0fdfda2c089a6a30353d470c0fb2b3",
      "parents": [
        "b461b53c926dae7f1959a309b0a2b109b6d3c4d3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 13:40:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 15 14:33:43 2020 +0000"
      },
      "message": "Fixes for gtests in eng-prod\n\nBug: 147817558\nTest: art/art-host-gtest on forrest\nChange-Id: I0ecfbc81fe6998d4c8c69ce6fbeb35bdd5908b55\n"
    },
    {
      "commit": "b461b53c926dae7f1959a309b0a2b109b6d3c4d3",
      "tree": "a9d3d51d8a3267dd3e7724c1ab3bf70cfd4c417a",
      "parents": [
        "fab6f1c479f6053a0c1eaaa889e0ff067d596211"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 13 17:45:22 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 15 09:48:56 2020 +0000"
      },
      "message": "Revert^2 \"Switch to LLVM prebuilt tools for ART gtests\"\n\nIt is also necessary to adjust the expected output of some tests.\n\nThis reverts commit ea54b823a3a02f65c865e11bbbccb327a273c039.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib244e8b7d43d575299654397a47056f295ab4589\n"
    },
    {
      "commit": "ea54b823a3a02f65c865e11bbbccb327a273c039",
      "tree": "e6cb592138b95d2cb3ab5a132d56b3211915a108",
      "parents": [
        "7285a4bc7337cf6382ac464b979ae5db986a2a53"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 10 18:28:56 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 10 19:34:40 2020 +0000"
      },
      "message": "Revert \"Switch to LLVM prebuilt tools for ART gtests\"\n\nThis reverts commit 8070443ce4b31a6787c22490f18f838f8f6ed4be.\n\nReason for revert: Failing on chrome buildbots.\nTest: None\nBug: 137817558\n\nChange-Id: I4cbb4898e859ce33560592dd63cbf4a413048662\n"
    },
    {
      "commit": "8070443ce4b31a6787c22490f18f838f8f6ed4be",
      "tree": "ca9952b599e81570b60a0b1d403316de45d3f340",
      "parents": [
        "60690e495c3d6ead778bc25c44e925c5fd66173f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:40:19 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 10 10:57:04 2020 +0000"
      },
      "message": "Switch to LLVM prebuilt tools for ART gtests\n\nIt is also necessary to adjust the expected output of some tests.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib517169614470193e0c55f566adb72a526ae6902\n"
    },
    {
      "commit": "194f555db74816aa380d2f46f63c8626f38e9b71",
      "tree": "d81626d2023f2d5a7f77b1ff4718e353ee76bc90",
      "parents": [
        "d6e14e0b6a3447d6e89a93d0a017e92b11dc5f6f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 07 01:10:07 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 15:58:18 2020 +0000"
      },
      "message": "Refactor arm assembly tests.\n\nAnother step in preparation to move to the LLVM toolchain.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ie5be337165d8f24e04740de0486144fa6a62f063\n"
    },
    {
      "commit": "d6e14e0b6a3447d6e89a93d0a017e92b11dc5f6f",
      "tree": "4e30db113ef4352874e57022a654b341e71f1a92",
      "parents": [
        "be7fe3b5466e10c4c49f027f10a801e1a4a9216c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:19:17 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 13:21:59 2020 +0000"
      },
      "message": "Rewrite assembler_test_base.h\n\nSimplify the code in preparation of move to LLVM prebuilt tools.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Iba277235255fd7d7f0965749b0b2d4a9567ced1f\n"
    },
    {
      "commit": "edda3caf7c02c241dc466ecd02a8555972c46c4d",
      "tree": "c21fa6218003389877739f67a636d75e1c1915b8",
      "parents": [
        "dd5db458831cf74ae5813d2278fbd599145c4522"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 08 00:41:08 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 08 16:05:41 2020 +0000"
      },
      "message": "Use different extension for smali test files.\n\nThe test infra just searches for and opens all .jar files.\nThe different extension effectively hides the test files from it.\n\nBug: 147817558\nBug: 160391839\nTest: m test-art-host-gtest\nChange-Id: Ida3c102008b772841076df4e374532f7845b8c61\n"
    },
    {
      "commit": "33247ee958f603bece4223e5e0937391c3c52672",
      "tree": "2ce7d2b876f6c49ef4f76116ff24731b759eae9d",
      "parents": [
        "c473dc7ae830ff6db4c9cead2be679af41da80e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 03 13:31:56 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 06 08:13:18 2020 +0000"
      },
      "message": "Add default EmptyFn for HashMap\u003c\u003e.\n\nCompare only the keys, not values. The old default used\nby ScopedArenaHashMap\u003c\u003e did not allow non-comparable values.\n\nTest: hash_map_test\nChange-Id: I6d9f3cf0ff10d637fb8221bc07d6f0867ace9336\n"
    },
    {
      "commit": "c4b50b3bb8125aa12255587c55b356b424278110",
      "tree": "01821ce1b27fa58b5b3b058b8ccfcbc9662b2112",
      "parents": [
        "beed922d8e517470720486ab7cafb126b5ff963d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 15:10:23 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 02 00:06:55 2020 +0000"
      },
      "message": "Improve library search paths for host gtests.\n\nEnsure the host gtests can also find the needed data and\nlibraries when executed remotely from testcases directory.\n\nBug: 147817558\nTest: Tested that tests pass with further followup CLs.\nChange-Id: I3562b1e89044dbc125afe4c83a4817cb0e73e716\n"
    },
    {
      "commit": "0a17b6a0e705e45cf47407d0573ef8a7fd67cd99",
      "tree": "9b864aae8d952fc0ee2829672220774c91494303",
      "parents": [
        "b7f4d0f15f02224ce5048ba566b2dce193ee103a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 11:29:47 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 12:41:06 2020 +0000"
      },
      "message": "Revert \"Support running of host gtests in eng-prod\"\n\nThis reverts commit 22872da653053bb4b86fbef67163a9f6b7aee25b.\n\nReason for revert: Checking if this CL is cause of b/160132136\n\nBug: 147817558\nBug: 160132136\nChange-Id: Ifb6f2292292a7f69fbd0f2e9204fd37dbca84277\n"
    },
    {
      "commit": "22872da653053bb4b86fbef67163a9f6b7aee25b",
      "tree": "5355ac349eeb15165c6db0c17e93f1286c52a3d4",
      "parents": [
        "11303f2983bf2ef8d55870afcd0d5937f0778753"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 25 15:23:15 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 26 17:14:57 2020 +0000"
      },
      "message": "Support running of host gtests in eng-prod\n\nAdd more libraries and tools to the shared ART directory in testcases.\n\nChange the tests environment setup, so that it can find the tools.\n\nVast majority of tests pass. Some individual tests still need fixing.\n\nBug: 147817558\nTest: run gtests in forrest\nChange-Id: I3214f532436828c2a1a5a543e69d6b9bcf1e42af\n"
    },
    {
      "commit": "f8cc26e53fecf48124789d23e233d5ab7025728e",
      "tree": "4ff361333e8d8916fd57d2e32b2a4d1b27df8518",
      "parents": [
        "ce0d0079e89e0238a334fdadba09c43940e3adcb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 10 15:37:37 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 16 07:51:29 2020 +0000"
      },
      "message": "Fix a braino when marking a method as being compiled.\n\nWe now compile without having ProfilingInfos. Move the flag of being\ncompiled from the ProfilingInfo to sets in the JitCodeCache.\n\nTest: test.py jit-at-first-use\nBug: 147207937\nChange-Id: I1a372bb5534764278f5e9df674783cf918c690b3\n"
    },
    {
      "commit": "9974e3cdc1564edc3143b90d7bb2a416f1f887e7",
      "tree": "4f9746e6b237b2a17cc1e2543a141817d4946c19",
      "parents": [
        "2d19902c3d140c7b9b1d7ae905bd1023a4e649a1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 10 16:27:06 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:06:12 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum).\n\nPass enums by value instead of const reference.\n\nDo not generate operator\u003c\u003c sources for headers that have no\nenums or no declarations of operator\u003c\u003c. Do not define the\noperator\u003c\u003c for flag enums; these were unused anyway.\n\nAdd generated operator\u003c\u003c for some enums in nodes.h . Change\nthe operator\u003c\u003c for ComparisonBias so that the graph\nvisualizer can use it but do not use the generated\noperator\u003c\u003c yet as that would require changing checker tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ifd4c455c2fa921a9668c966a13068d43b9c6e173\n"
    },
    {
      "commit": "a8106bc4d8c12a4877cbab64d1dd0c1619b6ad50",
      "tree": "b34991ec19351c90c1f18c1eb937a139dd53c5d9",
      "parents": [
        "6bc480b56e8bf070eb425b792757c62ca8fd38b2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 08 16:44:53 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 08 17:46:33 2020 +0000"
      },
      "message": "HWASan fixes for ART tests (part 2)\n\nEnsure the attribute is not dropped by the compiler for inlined methods.\n\nBug: 156593692\nTest: SANITIZE_TARGET\u003dhwaddress art/tools/run-gtests.sh\nChange-Id: I6a946050db1fdecb2150384dcd8d3c8bff27ef7f\n"
    },
    {
      "commit": "6355d6932a9e8267b3025f4061583f5610e64e54",
      "tree": "5531fe626119b7b6f4015fd3fa1f627c6846aa9c",
      "parents": [
        "fa915c920f07a794f06a9bee47513dc5f303d019"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 26 14:10:26 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 30 13:58:29 2020 +0000"
      },
      "message": "Remove core.art image\n\nIt is no longer used.\n\nTest: ./art/test.py -r --optimizing\nBug: 147817558\nBug: 147819342\nChange-Id: I913d7b78365d028bfcd9d876238882ebfd410682\n"
    },
    {
      "commit": "4a88a5af7417d9dc0bfe37cffd92a253531c8f30",
      "tree": "6a0496ac10c62f8d183265a9d9615d5778a8c444",
      "parents": [
        "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 05 16:21:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 11:51:26 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong.\n\nThe rules have already been previously ported to soong, but they were\nonly used for atest.  Always use them to simplify the makefile.\n\nThis makes the gtest modules in .bp files depend on the needed jars,\nwhich ensures that they will be copied next to the test binary.\nThis is needed as atest can not access them in the current location.\n\nIt also simplifies the tradefed xml since the manual copying\ncan be removed for the apex-based device testing.\n\nTest: test-art-host-gtest\nTest: atest ArtGtestsTarget\nBug: 147819342\nChange-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87\n"
    },
    {
      "commit": "b708fc1f100c7c238970ded7f1d5cb7c4da987b1",
      "tree": "6625bb087a5cea50ba4114eca641d3884ecb6c51",
      "parents": [
        "6c71dca9ecb00b46172b37153b93ab1fbcd772dd"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed May 20 17:48:19 2020 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Thu May 21 14:01:52 2020 +0000"
      },
      "message": "Add support for greylist-max-r signatures.\n\nBug: 156307884\nTest: m\nChange-Id: I838e348af7c0ca1b3933a8a6e012cddfa6c209aa\n"
    },
    {
      "commit": "2acd1ec12ab6b81a7e870ab11085c24ae51faf6d",
      "tree": "ae9f2fc872cc3ca9ae456df13e7d5057e6fc1254",
      "parents": [
        "4d55215d8b4bd0efb65b3a84a7dd041a6b097a96"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 16 01:38:49 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 20 13:24:47 2020 +0000"
      },
      "message": "HWASan fixes for ART tests\n\nBug: 156593692\nTest: SANITIZE_TARGET\u003dhwaddress art/tools/run-gtests.sh\nTest: SANITIZE_TARGET\u003dhwaddress art/test.py -r --target --64\nChange-Id: I24c5afdb4fed5ac94ce3a7b54a10c592f529191f\n"
    },
    {
      "commit": "88c139b92f155deeb9997e02f720b9ac0042b806",
      "tree": "983f600b2fb110ca20445f2f651b8dd1a8aeccc9",
      "parents": [
        "1439e573517bb9f0b115aef5d3bbd9090751ebd6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 16 01:37:26 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 18 09:27:28 2020 +0000"
      },
      "message": "Disable hwasan for BitMemoryRegion::LoadBits\n\nIt uses different attribute compared to the standard asan.\n\nBug: 156593692\nTest: SANITIZE_TARGET\u003dhwaddress art/tools/run-gtests.sh\nChange-Id: I3be85273ee19778751d2bd638f2ee2c32442f0e5\n"
    },
    {
      "commit": "883c1346b87537ed93f7d4fd88bbbb041c14d320",
      "tree": "efb8205d15d677d3e3fdf90f0ae09c4a2eba9a4f",
      "parents": [
        "612809740453427ce4c9211062794dde3823ab6d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 11 23:30:29 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 18:06:16 2020 +0100"
      },
      "message": "Revert^2 \"Remove test_per_src from ART tests.\"\n\nSecond attempt at this, which fixes the asan failures.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nAdded a gtest_main.cc with the gtest isolated main function,\nand ART-specific initialization.\n\nBug: 147819342\n\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nTest: art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: I515c911bb7d44285495802fc66cd732fc8e6d8df\n"
    },
    {
      "commit": "58520dfba31d6eeef75f5babff15e09aa28e5db8",
      "tree": "eb09e871c318fa9a01923e9afd31f70bdbb5e468",
      "parents": [
        "bc89ed42d6128c27819e5403f6ceca5c18892e23"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 13 17:08:43 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 19:34:11 2020 +0000"
      },
      "message": "Revert \"Use MADV_FREE to reclaim pages of freed regions\"\n\nThis reverts commit 315f1b21a51a67e5d9c9ec3a04f1887931061e10.\n\nReason for revert: Regression in PSS (b/155678984). Also MPTS test report a low hit ratio (20%), which doesn\u0027t justify the change, at least in the current format. A workaround will be to bring back marking pages back and only madv_free first few regions which are expected to be allocated soon. The rest of the regions should probably be reclaimed with MADV_DONTNEED. Also, for a GC happening when the app is in background should probably reclaim all regions with MADV_DONTNEED.\n\nTest: art/test/testrunner/testrunner.py\nBug: 155678984\nBug: 74447417\nBug: 140130889\nChange-Id: I3c4bc4648a3b12062957a51ee716742eb9944747\n"
    },
    {
      "commit": "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522",
      "tree": "4c1d538f5faf72617e9088b8f99a368b999b32dd",
      "parents": [
        "685c84775f7dfe23197b080e4730435fd80e6d27"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 00:08:42 2020 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 07:25:07 2020 +0000"
      },
      "message": "Revert \"Remove test_per_src from ART tests.\"\n\nThis reverts commit 8103e479d8f8447584582b2b70752029f7087776.\n\nReason for revert: asan run fails in multiple ways\n\nTest: ran ./art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: Ib9f2887436a664b64c6410f56a25ae2dd0e0aab4\n"
    },
    {
      "commit": "8103e479d8f8447584582b2b70752029f7087776",
      "tree": "53b2be70d195b785fc1d79b6151e42925b4981fe",
      "parents": [
        "6a8f8c52da06de506b75fa524a56a30794849261"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 21:36:49 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 07 14:45:38 2020 +0100"
      },
      "message": "Remove test_per_src from ART tests.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nBug: 147819342\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nChange-Id: Id295af00d08b24baa2e421b0f3313df0b2e56fe9\n"
    },
    {
      "commit": "d20e51dcd0fc4b2b229c5b6a5e9b500ae042bc61",
      "tree": "2ef7925b2e89c77cee31144a25932a198cd4b65e",
      "parents": [
        "a6653d304faa3bbd981507570a4ac1107760c6a7"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue May 05 16:01:19 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu May 07 09:34:47 2020 +0000"
      },
      "message": "\"Move ICU from ART APEX to i18n APEX\" Attempt 2\n\nThe change was previously submitted in https://r.android.com/1283897\n\n\"Calling @IntraCoreApi from core-icu4j should not cause Core platform API violation\"\nhttps://r.android.com/1299494\n\nBug: 138994281\nTest: m checkbuild on aosp_x86-userdebug\nTest: device boots\nChange-Id: Idb3e2450fca5d8300aef353fc1e4e99e24f04372\n"
    },
    {
      "commit": "9e4b42ad325ee8583b3c98550010516a3a127527",
      "tree": "d9b2dcb265434d03aacbd1fe5e4b96c8217c018c",
      "parents": [
        "5477b8e55f01a58fac188f272818b38a19c50d4e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 28 12:28:21 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 06 08:05:59 2020 +0000"
      },
      "message": "Refactor vdex file writing.\n\nInstead of unzipping dex files to the vdex file using a file\ndescriptor, reserve space in the vdex file and mmap it to\nmemory and unzip dex files to memory. Postpone any flushes\nuntil after we have finalized the contents, then flush the\ncontents without header, then store and flush the header.\n\nTesting with a certain big app on aosp_taimen-userdebug and\nusing --dump-timings to show the timing for different phases\nof compilation shows significant improvements. The time of\n\"Write Dex files\" goes from ~1s down to ~0.3s and also the\n\"OpenDexFiles\" is reduced from ~0.3s to ~0.2s. The latter is\npresumably caused by having the memory pages already filled\nwith data because this change does not touch that code. The\n\"dex2oat Write VDEX\" phase time does not significantly\nchange but it has an impact on the time of the enclosing\n\"dex2oat Oat\" phase, increasing it by up to ~0.2s.\n\nThis change also prepares for future improvements, such as\ndoing the dex file extraction on multiple threads (one task\nper dex file, helping with multi-dex), or tuning when we\nflush the vdex file contents (dex file data could be\nflushed with an msync() on a separate thread while we\u0027re\nrunning the \"dex2oat Compile\" phase but that could be\ncounter-productive for dex-to-dex compilation as we would\npotentially write the bytecode twice).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 34201138\nChange-Id: I9dbc2b0b4e3bf1e3b2cbf78957356e1d4ca23f66\n"
    },
    {
      "commit": "5477b8e55f01a58fac188f272818b38a19c50d4e",
      "tree": "e6e345925412d7bd3f6f1e46d9c47833c23bdb40",
      "parents": [
        "ed2895678203365b2024c742f51d34791729900b"
      ],
      "author": {
        "name": "Chris Gross",
        "email": "chrisgross@google.com",
        "time": "Fri Apr 24 09:36:45 2020 -0700"
      },
      "committer": {
        "name": "Chris Gross",
        "email": "chrisgross@google.com",
        "time": "Tue May 05 21:12:37 2020 +0000"
      },
      "message": "Allow bootjars in system_ext.\n\nBug: 148385042\nTest: Built and booted Pixel 3a both with and without a boot jar in system_ext.\nTest: m test-art-host-gtest-hidden_api_test32\nTest: m test-art-host-gtest-hidden_api_test64\nChange-Id: I10ef0340b92aa60579ff39f888cb556dc2953f2a\n"
    },
    {
      "commit": "4a48775376a4c0b180a7d32ad2cdf00bd0dca140",
      "tree": "ef0bbb1281f6d4785e60f26cb420646c83eb6f6d",
      "parents": [
        "b5146a3b70b9bf15532d25d3b876354938976bc9"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "message": "Revert \"Move ICU from ART APEX to i18n APEX\"\n\nRevert \"Move v8 and libpac into i18n APEX\"\n\nRevert \"Move core-icu4j into I18n APEX\"\n\nRevert \"Move ICU from ART APEX into i18n APEX\"\n\nRevert \"Move core-icu4j into i18n APEX\"\n\nRevert \"Move libpac into i18n APEX\"\n\nRevert \"Add shared library into i18n APEX and add the required s...\"\n\nRevert \"Make com_android_i18n namespace visible\"\n\nRevert submission 1299494-i18nApex\n\nReason for revert: Breaking aosp_x86-eng on aosp-master\nReverted Changes:\nI30fc3735b:Move ICU from ART APEX to i18n APEX\nIcb7e98b5c:Calling @IntraCoreApi from core-icu4j should not c...\nIc7de63fe3:Move core-icu4j into I18n APEX\nI65b97bdba:Make com_android_i18n namespace visible\nIa4c83bc15:Move v8 and libpac into i18n APEX\nI10e6d4948:Move core-icu4j into i18n APEX\nI8d989cad7:Move ICU from ART APEX into i18n APEX\nI72216ca12:Move ICU into i18n APEX\nIef9dace85:Add shared library into i18n APEX and add the requ...\nI7d97a10ba:Move libpac into i18n APEX\nI90fff9c55:Move ICU from ART APEX into i18n APEX\n\nChange-Id: I516a8d290e3a3cc2b45d71ba5400364b0478a57a\n"
    },
    {
      "commit": "b5146a3b70b9bf15532d25d3b876354938976bc9",
      "tree": "dca0a5f4cd30c2882e404532eb06691a19624306",
      "parents": [
        "50f89ba3237da01adfdbc65abc330d1c8d5af07e"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "message": "Revert \"Calling @IntraCoreApi from core-icu4j should not cause \"...\"\n\nRevert \"Move v8 and libpac into i18n APEX\"\n\nRevert \"Move core-icu4j into I18n APEX\"\n\nRevert \"Move ICU from ART APEX into i18n APEX\"\n\nRevert \"Move core-icu4j into i18n APEX\"\n\nRevert \"Move libpac into i18n APEX\"\n\nRevert \"Add shared library into i18n APEX and add the required s...\"\n\nRevert \"Make com_android_i18n namespace visible\"\n\nRevert submission 1299494-i18nApex\n\nReason for revert: Breaking aosp_x86-eng on aosp-master\nReverted Changes:\nI30fc3735b:Move ICU from ART APEX to i18n APEX\nIcb7e98b5c:Calling @IntraCoreApi from core-icu4j should not c...\nIc7de63fe3:Move core-icu4j into I18n APEX\nI65b97bdba:Make com_android_i18n namespace visible\nIa4c83bc15:Move v8 and libpac into i18n APEX\nI10e6d4948:Move core-icu4j into i18n APEX\nI8d989cad7:Move ICU from ART APEX into i18n APEX\nI72216ca12:Move ICU into i18n APEX\nIef9dace85:Add shared library into i18n APEX and add the requ...\nI7d97a10ba:Move libpac into i18n APEX\nI90fff9c55:Move ICU from ART APEX into i18n APEX\n\nChange-Id: Ica8f978af397a5ef84847246c89f724b3f8e7d6e\n"
    },
    {
      "commit": "50f89ba3237da01adfdbc65abc330d1c8d5af07e",
      "tree": "98e9d52845a6b7114529628144cd9c51b56904c2",
      "parents": [
        "8419b82fa8d46362eb1369ec1876ee2d3c4bc29d"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Apr 30 18:53:43 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 08:52:20 2020 +0000"
      },
      "message": "Calling @IntraCoreApi from core-icu4j should not cause \"Core platform API violation\"\n\nTreat I18n APEX as the same domain as ART and Conscrypt APEX.\n\nRemove unused varaiable isJavaDebuggable because it causes the\nNoSuchMethodError for an unknown reason:\njava.lang.NoSuchMethodError: No virtual method isJavaDebuggable()Z in class Ldalvik/system/VMRuntime; or its super classes (declaration of \u0027dalvik.system.VMRuntime\u0027 appears in /apex/com.android.art/javalib/core-libart.jar)\n\nBug: 138994281\nTest: art/test/run-test --chroot $ART_TEST_CHROOT 674-hiddenapi\nChange-Id: Icb7e98b5cd7143c06c05dd4377af0c96ba75bca7\n"
    },
    {
      "commit": "8419b82fa8d46362eb1369ec1876ee2d3c4bc29d",
      "tree": "dca0a5f4cd30c2882e404532eb06691a19624306",
      "parents": [
        "b6f4c79b06bb97651a7be1ac828d18ed18356603"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 20:42:07 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 08:52:20 2020 +0000"
      },
      "message": "Move ICU from ART APEX to i18n APEX\n\nIt involves a change of boot class path to use core-icu4j\nfrom i18n APEX.\n\nBug: 138994281\nTest: device boots\nTest: m build-art-target-tests\nTest: CtsJniTestCases\nTest: atest libnativeloader_test\nTest: ./art/test/testrunner/run_build_test_target.py -j80 art-test\nTest: art/build/apex/runtests.sh\nChange-Id: I30fc3735be760cba48856cd102852d2a6c796374\n"
    },
    {
      "commit": "315f1b21a51a67e5d9c9ec3a04f1887931061e10",
      "tree": "4d736d750c5839395aac65a48bd3935a9831cdbc",
      "parents": [
        "0f5b2bf1aee7e08ce3b0dbf91ee528eb846d372f"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 12 18:10:32 2020 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 01 18:22:13 2020 +0000"
      },
      "message": "Use MADV_FREE to reclaim pages of freed regions\n\nIn order to release memory consumed by freed regions back to kernel we\nuse madvise(MADV_DONTNEED) syscall, which synchronously takes away all\nthe pages of the given memory range. As a side-effect, this also\nprovides us clean (zeroed-out) pages the next time region is used by\nan application thread as a TLAB. The downside is overhead of\nMADV_DONTNEED (it has to manipulate all the corresponding page-table\nentries). Furthermore, the application thread gets page fault each\ntime it moves from one page to the next while consuming the TLAB.\n\nMADV_FREE is another madvise option that also advises kernel to take\naway the pages, but only when there is memory pressure. It is a much\nmore light-weight operation than MADV_DONTNEED. Also, the application\nthread doesn\u0027t get the page fault overhead, if the page is not already\nreclaimed. However, a page which is not reclaimed by the kernel will\nhave stale data on it.\n\nThis change uses MADV_FREE for region-space\u0027s reclamation and ensures\nthat pages about to be used for new allocations are properly cleared.\n\nBug: 74447417\nBug: 140130889\nTest: Golem, mpts/greenday tests\nChange-Id: I1e4a75abed51844d5062685bf77871f609af5a65\n"
    },
    {
      "commit": "0240d2ba620e42d68fa9b6a6ca4ff01a0c79b8e3",
      "tree": "bbe6c4c965b06f9d5d724d1d1a52739ba8fd1852",
      "parents": [
        "aafe432776279e32215272890db236e0fb412d98"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 23 15:45:22 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 27 16:03:44 2020 +0000"
      },
      "message": "Move the logging line interleave lock from libbase to ART\n\nlibbase will now print up to 4k chunks of data to logd at once and\nit will print the full log message to stderr at once, so there is no\nneed for a majority of users to hold a lock during logging to prevent\nother threads from interleaving log messages between lines of an\nindividual log message.\n\nART is historically the only user of libbase that strongly cared to\nhave this lock to prevent the interleaving in all cases, thus this\nlock is moved to ART only.\n\nBug: 65062446\nBug: 153824050\nTest: logging unit tests\nChange-Id: I4b9e13fcc8996c419cb7472f545589f860a3e510\n"
    },
    {
      "commit": "9a625b53532db4c05d2a97e55c3a62f7dfbe385d",
      "tree": "d51efac52fac8c78ae42bcf3df05a290800acadf",
      "parents": [
        "f823f0eeec8c69d956b665adc7da3b6038a969d1"
      ],
      "author": {
        "name": "Rock.Yeh",
        "email": "rock.yeh@mediatek.com",
        "time": "Mon Jan 06 10:53:02 2020 +0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 19:05:04 2020 +0000"
      },
      "message": "Fix mmap leakage for ASAN build\n\nWhen address_sanitizer is enable, mmap size will be added an extra\nredzone_size. We need to add back to prevent a leakage.\n\nBug: 147272193\nTest: boot\nTest: adb shell pm compile -m speed-profile package_name\nTest: art/test/testrunner/run_build_test_target.py -j32 art-asan\nChange-Id: I5c0792ec779b2efa02e969889ebc54f0c2e7d6e3\n"
    },
    {
      "commit": "d31def587a914c1d306355a7331c24d7b13ad5ca",
      "tree": "6058b601bc9d63dae16b33c6eff5809e0c93bc7f",
      "parents": [
        "f6c3784f9f2a535e7790cbc6a03d0935306ee26a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 30 17:57:10 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 01 15:42:27 2020 +0000"
      },
      "message": "Adjust embedded dex locations in host boot image.\n\nThe run tests require that \"out/host/linux-x86\" is included.\n\nThis matches core.art locations.\n\nThis is CL is partial revert of CL/1234908.\n\nTest: m test-art-host-gtest\nBug: 147817558\nBug: 147819342\nChange-Id: I2083cba10235def41c07e34a01a4ee8cd548d978\n"
    },
    {
      "commit": "fdd46848364b5fdb7360cb3256bd9482d7ca3c28",
      "tree": "d3e47c9723155f6376e3782cc47658a295c1da1c",
      "parents": [
        "4ac8d96c332b014b72c2480aa1c83762e818daef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:16:12 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nChange-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\n"
    },
    {
      "commit": "0c0f3026ba429177cfb348256d74f3cf00a39c41",
      "tree": "dccf8ac4632fd90095f0a6c616a3b9a9b52db871",
      "parents": [
        "f368882656cce265d732cba237fac7bc312934a6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 13 15:53:01 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 18:03:53 2020 +0000"
      },
      "message": "Host gtests: Use the apex boot image instead of core.art.\n\nClosely mirror the behaviour of target tests.\n\nTest: m test-art-host-gtest\nBug: 147817558\nChange-Id: If9a1d34cef022fa93c9c09c8f31adc26ac71afdc\n"
    },
    {
      "commit": "2c2248cf139a99abb560eb9e89ea9a6e7d6f85f3",
      "tree": "82bca302720149f16b202b7489c93345d31acf47",
      "parents": [
        "ba2add1acc0bb4a80f11b9e3c1643cc1baf19698"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 06 14:50:45 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:01:19 2020 +0000"
      },
      "message": "Reland^3 \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit 9bdba6e5e252de50c5cdd7f1680b84d87c903115.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\nBug: 150890582\n\nReason for revert: CL not the reason for the regression.\n\nChange-Id: I4d6b2c1dde87930054f15c5a466275f255f81302\n"
    },
    {
      "commit": "9bdba6e5e252de50c5cdd7f1680b84d87c903115",
      "tree": "c6329df5ca44447b6d1bccab9b97d7f543330c31",
      "parents": [
        "e42876fa5557cf3fe30238f7e7e70cafdbe50001"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:37:21 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:38:56 2020 +0000"
      },
      "message": "Revert \"Reland^2 \"Always put the framework profile in the boot image location.\"\"\n\nThis reverts commit ed1f531085b4f81dbe50aba4b01738553920a2eb.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: Still seeing some regressions, now on both speed-profile and quicken.\n\nChange-Id: Ic0b304ddddfd2db1ae9e6e3ec38a8d157431a69d\n"
    },
    {
      "commit": "ed1f531085b4f81dbe50aba4b01738553920a2eb",
      "tree": "88f55fa770b327e4ecec4460feee74e5fe3dff6d",
      "parents": [
        "ab4d2222a206f48a27178c52f0ee31c30170823f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 09:56:17 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 04 16:17:33 2020 +0000"
      },
      "message": "Reland^2 \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit acb5c2dfabaf8126e20d17a4d02ac183af2afc26.\n\nAnd adjust dex2oat image location adjusting logic, by removing the\nprofile, but keeping the extension location.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: Changes in dex2oat.cc fix the performance regression.\n\nChange-Id: I4686d2af029d7185c02d7e798f19d0f5d9328dbc\n"
    },
    {
      "commit": "9f8ead24a13e0471a333f0776a024e970662591c",
      "tree": "853103508567b0db20d034ae8e20dd19975d0b95",
      "parents": [
        "662f12ee2f2b886aebcc22d321b2d752227e0b38"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 19 10:32:17 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 03 09:13:01 2020 +0000"
      },
      "message": "Remove support code for native Core Platform API checks\n\nNative Core Platform API checks rely on the stack unwinder. The\nunwinder instance increases the zygote rss by ~4MB. We need to keep the\nunwinder around to keep checks fast and not churn memory resources.\n\nBug: 124338141\nBug: 144502743\nBug: 149029127\nTest: m \u0026 boot\nChange-Id: Ia306ec6e48d7b2b330efd771348b563767973269\n"
    },
    {
      "commit": "acb5c2dfabaf8126e20d17a4d02ac183af2afc26",
      "tree": "34a6b1e267f84c361436ace562a3e0cc01874dca",
      "parents": [
        "b871d3eba85b150728d8e1f5bea95e3655edbc4a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 21:57:19 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 21:57:35 2020 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Always put the framework profile in the boot image location.\"\"\"\n\nThis reverts commit ec769b883cf49c742689a195a417345328fa1bf0.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: First commit was mixed with other regressions. This CL does have a ~20ms impact on app startup of calculator in speed-profile mode. But no regression with \"quicken\".\n\nChange-Id: I16df444fc4edf509a9db815891a1ada6005ebc91\n"
    },
    {
      "commit": "ec769b883cf49c742689a195a417345328fa1bf0",
      "tree": "f25dffbcf741fafcdf5ccdb03b85aeb203202d15",
      "parents": [
        "6cf7a9b0ecce7057758a55d8a2a2a5f1ca4653dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 25 15:22:04 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 10:47:02 2020 +0000"
      },
      "message": "Revert \"Revert \"Always put the framework profile in the boot image location.\"\"\n\nThis reverts commit 2ad7c98dda05b0c8a049895cd68b3d2850156912.\n\nReason for revert: CL wasn\u0027t the culprit for the seen regression.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\nChange-Id: Ib8796783660ddeae1d1761273f79e779b85aef5c\n"
    },
    {
      "commit": "2ad7c98dda05b0c8a049895cd68b3d2850156912",
      "tree": "57d33c8d60aeabc37bc364b0989b047f09b3c273",
      "parents": [
        "4d125afe9c92bc1d58da74355de80c4c38377eae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 20 22:40:41 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 20 22:41:05 2020 +0000"
      },
      "message": "Revert \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit 5265419a52ad11cea4771891c1269feaf56d7e40.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\n\nReason for revert: Odd messages from trace in b/149859910 leading to 20ms regression:\nDex file open from Zip Archive /system/framework/framework.jar\n\nChange-Id: I6f74d384fcd709f91d847a5360eb91498c1fa5fe\n"
    },
    {
      "commit": "be0d3cff84c69c497487d39c4022d604a7907d5b",
      "tree": "15364a8eb252f9645bb1cf3f9fe9d2017f1ed5fa",
      "parents": [
        "5945de03b6f6b35bcf6a575b2291e29ae7a2b1ee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 07:15:30 2020 +0000"
      },
      "message": "Remove remaining MIPS support.\n\nWith the exception of dwarf support in libelffile.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: Ib25acbc98aa7f63ce49a7ed2f81a4a64d48eac39\n"
    },
    {
      "commit": "5265419a52ad11cea4771891c1269feaf56d7e40",
      "tree": "dc0da41c345264747c5a78865c4a4c35fad8d09c",
      "parents": [
        "58cc76d2102383b7474415b651a83b7551ab7f39"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 10:03:50 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 13:39:14 2020 +0000"
      },
      "message": "Always put the framework profile in the boot image location.\n\nThis enables testing an update of the ART module on the device.\n\nThis CL also removes the \"always compile native methods in JIT zygote\nconfiguration\" as it is now expensive to check, and in the future we\nshould get native methods in the profile.\n\nBug: 143126914\nBug: 119800099\n\nTest: boots, adb install com.android.art.apex works\nChange-Id: I6c67344c5081749b4b19d52acddd0d2a196adf4a\n"
    },
    {
      "commit": "41b605c5ad4b06ea127ac56c6e3a4c92e8913efd",
      "tree": "f7b28eb11051f3faada99c11dc594cccd34a5786",
      "parents": [
        "30b38f8d01cdb4c80092638f23c61d73e0d287f4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 12:01:58 2020 +0000"
      },
      "message": "Remove MIPS support from runtime/.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876\n"
    },
    {
      "commit": "cf0c6ef642517fba3bc9a211acaed742ff39b86d",
      "tree": "045be891d40e7671edf55444d84bb371d1347c04",
      "parents": [
        "7c2f69e42e5347820ada07c88de5a79f355c61be"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 16:25:36 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 07 00:34:58 2020 +0000"
      },
      "message": "Device gtests: Use boot.art instead of core.art.\n\nThey are essentially the same. We can use boot.art to run gtests\nsince it is already part of the apex, including the jar files.\n\nThis will make it easier to run the tests in atest, since we\nwill not have to worry about copying core.art to the device.\n\nThe long-term goal is to avoid generating core.art altogether.\n\nCouple of tests also require \"alternate\" image which has no\ncompiled code. The tests now generate it on-demand in code.\n\nThe host gtests still use core.art for now (as there is no\nboot.art on host). The plan is to add it in future CLs.\n\nTest: m test-art-host-gtest\nTest: ./art/tools/run-gtests.sh\nBug: 147817606\nChange-Id: I3a750bb8e60eea0b4a7df1491285feffd5a0161c\n"
    },
    {
      "commit": "9987b74e5a11b910c0de15f02491a101cc763c4f",
      "tree": "51543be8c4840eed4c37f5925b8fe1a045dc8efe",
      "parents": [
        "f6afcc9bd7f9b82df5e93d96d89c4c8da898e6f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 06 11:47:52 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 06 15:48:46 2020 +0000"
      },
      "message": "Fix memfd_create_compat() F_DUPFD call.\n\nPass 0 as the lowest required fd arg for F_DUPFD, instead\nof picking up uninitialized garbage.\n\nTest: dex2oat_image_test on fugu.\nBug: 149002515\nChange-Id: I2af21d47430133eba90877e7cf35424597fb78ce\n"
    },
    {
      "commit": "066dd906fc8ae3576a1ef53485e80b1c851ba327",
      "tree": "7d51e5a892c3e8c2aa1f81fd9342214917ac5824",
      "parents": [
        "20d57d121a6f072484eb34b2f641136d9aff2077"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jan 23 01:40:02 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 03 11:46:40 2020 +0000"
      },
      "message": "Revert \"Disable BitStructs::NestedFieldAssignment.\"\n\nThis reverts commit 8404f348c96c929981b157b8240d55bc81222003.\n\nReason for revert: b/148125232 was fixed\nBug: 148125232\n\nChange-Id: I5a8232959f804c203850aaaf3dac97e286dd188f\n"
    },
    {
      "commit": "dd14a3d77abef167a18b8ad81f7ebb4d932c74a0",
      "tree": "f216d5c2109399191e85d0e31cdb066b6a0bc228",
      "parents": [
        "7e1603ea604c17abb742ab5349b7595000a122f5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 11:43:11 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 03 09:52:11 2020 +0000"
      },
      "message": "Update old comment in bit_struct_detail.h .\n\nTest: Rely on TreeHugger.\nBug: 148125232\nChange-Id: I1d931eec46bcd33446ec407e81cdebcb0d568c16\n"
    },
    {
      "commit": "e4207a7bf5b008df97b76b6df7a9930524c4c1cb",
      "tree": "e8ebf130a1ced48fd228d8e9f80ceb1e137fd9e0",
      "parents": [
        "299141a330adc3bff3fdfaa54baf9e6d681507aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 24 14:42:03 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 09:20:45 2020 +0000"
      },
      "message": "Use consistent storage type in bit structs.\n\nPropagate the storage type from the enclosing union to each\nindividual field when it is defined by provided macros.\n\nTest: m test-art-host-gtest\nBug: 148125232\nChange-Id: I6976c4e7668d62f500ee1a413a30e02bc8b68cea\n"
    },
    {
      "commit": "299141a330adc3bff3fdfaa54baf9e6d681507aa",
      "tree": "3638826f004608e855bb90c2e399edad36b46ca2",
      "parents": [
        "e91e795a77b96d58276f75b1b244a5509ef8c215"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 23 14:50:12 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 09:20:45 2020 +0000"
      },
      "message": "Fix undefined behavior in BitStruct.\n\nFixes broken bit_struct_test and subtype_check_test.\n\nTest: m test-art-host-gtest\n      (tested on top of tree sync\u0027d when they were broken).\nBug: 148125232\n\nChange-Id: Iceee3ffc762ab28ea403d835b062766e5cbb088f\n"
    },
    {
      "commit": "aa6f6f1c86705fe3cedf929bd30d1e6f51524594",
      "tree": "68ebe2b07cc7dec80e153028750fbbf5bbc65050",
      "parents": [
        "78815ee2caf62da310b98a6206b0bdbacf239ff3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jan 30 17:36:29 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 30 21:33:55 2020 +0000"
      },
      "message": "Revert \"Add temporary logging to MemMap::swap\"\n\nThis reverts commit aea71ae52a6f846b39f89a3c395663f40b2f4184.\n\nReason for revert: Debug failure is elsewhere. And this was intended to be temporary anyway.\n\nChange-Id: Ia349ba7282c3c8c94b5d50575ccc8d532eded6a9\n"
    },
    {
      "commit": "78815ee2caf62da310b98a6206b0bdbacf239ff3",
      "tree": "750f0927c48a98f6a240aa06a5c6216c57d3cf1b",
      "parents": [
        "f85a4d0890fd6be2b303a975dab44c74bd475418"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 28 11:09:42 2020 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 30 16:51:57 2020 +0000"
      },
      "message": "Cleanup endian_utils.h\n\nRewrite the endian_utils.h functions to use normal endian.h functions.\nAlso remove some unused functions.\n\nTest: build\nTest: manual DDMS.\nChange-Id: I4bc80bf2e6b74a72844a5a4f296b3e34e80c7343\n"
    },
    {
      "commit": "fc58809f7b932d86234130be15487017dc37b0cf",
      "tree": "d003dedec73d77473aff6b2039860bc76a69d898",
      "parents": [
        "d00f129f1b7148f01efe6e9283a72d6ec8f0edd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 23 15:39:08 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 29 23:31:10 2020 +0000"
      },
      "message": "Remove old JDWP implementation from ART\n\nThe old \u0027internal\u0027 JDWP implementation hasn\u0027t been used for a few\nreleases and it\u0027s a lot of code that\u0027s barely being tested and is at\nrisk of bit-rot. To simplify the runtime and remove potentially buggy\ncode this removes it.\n\nWe also needed to rewrite the DdmThreadNotification code since it\nrelied on the suspension functionality from the old debugger and was\ngenerally unsafe.\n\nTest: ./test.py --host\nTest: atest --test-mapping cts/tests/jdwp/TEST_MAPPING\nTest: atest --test-mapping cts/hostsidetests/jdwptunnel/TEST_MAPPING\nTest: Manual ddms\n\nBug: 119034743\n\nChange-Id: I775f310a009141296b730e4a6c2503506a329481\n"
    },
    {
      "commit": "aea71ae52a6f846b39f89a3c395663f40b2f4184",
      "tree": "842d8560cf736d45db7d6fcc0238ec38af535df7",
      "parents": [
        "a8fe58f0512a2147580b798e1cb8308420f8ae99"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 28 17:33:19 2020 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 29 11:51:31 2020 +0000"
      },
      "message": "Add temporary logging to MemMap::swap\n\nThe intent is to track down the failures in\n\nBug: 148171362\nTest: Check for logged strings in x86-32 build products.\nChange-Id: If49a298cd75c11aae694ff0ab2db3945ada71eb5\n"
    },
    {
      "commit": "8404f348c96c929981b157b8240d55bc81222003",
      "tree": "4f00f5321adb95f768e392d4c49b838af59b1ade",
      "parents": [
        "e8bd0a90be7be25961efd204b8f404e180cdd13f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 22 10:22:10 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 22 10:22:10 2020 +0000"
      },
      "message": "Disable BitStructs::NestedFieldAssignment.\n\nTest fails after:\nhttps://android-review.googlesource.com/c/platform/build/soong/+/1209543\n\nBug: 148125232\nTest: bit_struct_test\nChange-Id: Ia098ac655c1e9b1232628e6988957a51a92f7fd9\n"
    },
    {
      "commit": "628f48871a9c7a1f18c2d5e1a76aa7afc716810d",
      "tree": "5fb203100260313a76748c8b0ef9ff91b549a725",
      "parents": [
        "9406c43b2de9b94b6d70f82474840eccd7699dc7"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jan 10 17:36:14 2020 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 14 22:16:55 2020 +0000"
      },
      "message": "Remove the LogId parameter from libbase\u0027s LogMessage\n\nThis isn\u0027t used by anyone and shouldn\u0027t have existed in the first\nplace, so it\u0027s being removed.\n\nTest: build\nChange-Id: Ifb0a1180a176291085cab01fd8e267184ea23cf1\n"
    },
    {
      "commit": "81ba7db6eb468598e5b17b7d8480e00d8245f9c2",
      "tree": "07216d023b38430a0e2d1ff63618ee14d7016686",
      "parents": [
        "e89ffaba24906357f3d4ba19cc45c0ead6226153"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Dec 18 17:33:07 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jan 09 13:20:34 2020 +0000"
      },
      "message": "Revert^2 \"Use framework boot image extension.\"\n\nThis reverts commit 42b9c19772542457701d5efea26aae4449dec8c7.\nReason: re-applying the change after resolving the problem with\ncoverage builds (in a related CL).\n\nUse boot image extension for framework libraries.\nThis patch splits the system boot image in two parts:\n\n  - The ART boot image. This is the primary boot image that is\n    included in the ART apex and contains dexpreopted Core Libraries.\n\n  - The framwework boot image extension. It depends on the ART boot\n    image and contains framework libraries.\n\nThe third \"apex\" boot image (used in the JIT-zygote experiment)\nremains unchanged; it is a monolithic primary boot image that\ncontains both libcore and framework libraries.\n\nDexpreopting of APKs now uses the framework boot image extension\n(which in turn pulls in the ART boot image as a dependency).\n\nBug: 146462581\nBug: 119800099\n\nTest: aosp_walleye-userdebug boots.\n\nChange-Id: I137a2062d96b4329d7ebdd9f4236804e61ba3d02\n"
    },
    {
      "commit": "65c18a21e7cb0d48327788df498f15ae195e9e3c",
      "tree": "ba49c1f07e7cd2bc6d9ffbafc184bcad85e9ce45",
      "parents": [
        "c4d13ae39ec6f4b6b76b152818516081beb6bb56"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 23:37:13 2020 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 07 17:40:19 2020 +0000"
      },
      "message": "Revert^4 \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit ead89ef62768faa06fedd279b86bccbed1464673.\n\nPS1 is identical to Revert^2.\n\nThis fixes a shutdown issue caused by prematurely hanging when we\nblock while trying to acquire system mutexes during shutdown.\n\nOnly refuse to wake up after shutdown is well under way.\n\nBug: 140590186\nBug: 121302864\nTest: Build and boot AOSP.\nTest: art/test/testrunner/testrunner.py --host -b -t 1932-monitor-events-misc\nTest: art/test/testrunner/testrunner.py --host -b -t 004-ThreadStress\nTest: art/test/testrunner/testrunner.py --host -b -t 132-daemon-locks-shutdown\nTest: 132-daemon-locks-shutdown repeated with increased thread counts and multiple\nconcurrent tests.\n\nChange-Id: Ic19d32652a2a05c1ca843b3e9c6e29e6770262da\n"
    },
    {
      "commit": "ead89ef62768faa06fedd279b86bccbed1464673",
      "tree": "27e3bef919a0775f45c0dfc08b6a26d7688e8a98",
      "parents": [
        "8d94dddfd60ab8122b0abb1a0d90fb13d752a7b6"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 21:37:10 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 03 22:50:59 2020 +0000"
      },
      "message": "Revert^3 \"Add spin loop to mutex, overhaul monitor\"\"\n\nThis reverts commit 3d52abe40e619497b1b59cfce92c74b5a417add5.\n\nReason for revert: Causes asan build timeout; Apparently the runtime\ngoes away while we\u0027re holding a system mutex. We now sleep forever\nwithout releasing it.\n\nBug: 140590186\nBug: 121302864\nChange-Id: I9e4dcaf820815c751aa803473809955451988ebd\n"
    },
    {
      "commit": "3d52abe40e619497b1b59cfce92c74b5a417add5",
      "tree": "50c67eb9a980b1525f78e03d0941605bb9fa3887",
      "parents": [
        "eac38a141a95adc273059ba2f6ad26f073391ed3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 19 18:49:50 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 19:15:21 2020 +0000"
      },
      "message": "Revert^2 \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit d56f7d1086b16f32c0771a41a4afb376b5fd3076.\n\nReason for revert: PS2 fixes the problems I identified.\n\nPS1 is straight revert^2 of, and thus identical to aosp/1111800.\n\nPS2 in addition:\n- Reduces the size of the test, when not modified to run as benchmark.\n- Disables the test in slow-running configurations, which timed out.\n- Stops using the mutex recursion count, and instead reintroduces\n  one at the monitor level. The plan is to eliminate the one in mutex\n  in a future CL.\n- Avoids modifying various monitor fields in suspended state.\n  MonitorInfo, deflation, etc., may look at the state of a suspended\n  thread and expect not to race. I don\u0027t think the original code had\n  this completely correct either, but PS1 made it worse.\n- Documents some aspects of the code that confused me at times.\n- Avoids dereferencing the monitor owner Thread* unless it holds the\n  thread list lock, and thus knows that the thread won\u0027t go away.\n- Stores a Thread* instead of a thread_id with the monitor owner method\n  and dex pc information used for debugging. This is required to avoid\n  extra thread list lock acquisitions, since we need to dereference the\n  owner to get the thread id.\n- Makes the thread list Contains method public, again in order to\n  support the above. (This ignores C/C++ restrictions on dangling\n  pointer use. We already rely on violating those elsewhere, and\n  the committees are trying to get their story straight about this.)\n- Causes the spin loop to give up immediately if the process is\n  shutting down. This gets us to an actual idle state sooner in that\n  case, and should hopefully mitigate the shutdown issues somewhat.\n  (We tried not spinnning in \"suspended\" state, but that reintroduced\n  some performance issues.)\n- Makes runtime shutdown code more defensive. Clear fields pointing to\n  deallocated objects. Always wait for quiescence AFTER all threads\n  are suspended.\n- Consistently checks for a runtime that\u0027s shutting down or missing\n  after waking up from a futex wait, thus avoiding touching deallocated\n  memory. I believe this was the cause of b/121302864, which PS1\n  managed to aggravate.\n- SleepForever() was a very light sleeper, waking up once a second.\n  Fix that, so the daemon threads we leak on runtime shutdown cost\n  us less.\n- Remove a data race from the \"was the runtime deleted\" logic.\n\nBug: 140590186\nBug: 121302864\nTest: Build and boot AOSP.\nTest: art/test/testrunner/testrunner.py --host -b -t 1932-monitor-events-misc\nTest: art/test/testrunner/testrunner.py --host -b -t 132-daemon-locks-shutdown\nTest: art/test/testrunner/testrunner.py --host -b -t 004-ThreadStress\n\nChange-Id: I6667c61beed2ba68c84cd4c0821fb8e21e188bbc\n"
    },
    {
      "commit": "270db1ce48377e3d9ca0c3dcec834ac807ca885b",
      "tree": "ffc553c6ff1ad37bdc3caca01ad686fa41ca0688",
      "parents": [
        "42b9c19772542457701d5efea26aae4449dec8c7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 03 12:20:01 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 11 18:46:44 2019 +0000"
      },
      "message": "Revert^4 \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit 664999a12d6fc8a8ef5c0519b12ec1e8a51bb085.\n\nFixed issues with GC and quickened instructions in parent CLs.\n\nReason for revert: Fixed issues with GC CHECK fail and device SEGVs.\n\nTest: ./test.py --host\nTest: ./test.py --target\nBug: 134162467\nBug: 144168550\nChange-Id: Ibacddaf45beb72184f97d53d5d048bd442578658\n"
    },
    {
      "commit": "42b9c19772542457701d5efea26aae4449dec8c7",
      "tree": "7cbb49181d980deb6335770eeabbb0ff1c4eb5b7",
      "parents": [
        "e02ebc05f4d31885b659b1c96b986eb26d324172"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Dec 11 11:13:02 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Dec 11 18:28:56 2019 +0000"
      },
      "message": "Revert \"Use framework boot image extension.\"\n\nThe revert is partial: we keep permitted paths to the ART apex\nin the linker config.\n\nThis reverts commit 5c8cc64b5f1580faf510f27527e7e22987174963.\n\nReason for revert: breaks avd/avd_boot_health_check test\n  on cf_x86_phone-userdebug_coverage on branch rvc-release\n  (the device fails to boot).\n\nTest: m\nTest: aosp_walleye-userdebug boots\n\nBug: 145749668\n\nExempt-From-Owner-Approval: revert\n\nChange-Id: I47f3e05a2f6beed9b4c4e9675a7668fbaafc0474\n"
    },
    {
      "commit": "b7bf843b04046f2758998c019e947611d0208217",
      "tree": "0a6033402ebde2859267c865dc4e14cde9170835",
      "parents": [
        "726e2dd6db60968b36c1d03feab236edc8fa806b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 03 13:18:50 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 06 10:57:08 2019 +0000"
      },
      "message": "Use provided dex filenames in oat file.\n\nRemove OatFile::RemoveRelativeEncodedDexFileLocation() and\nuse the provided `dex_filenames\u0027 (see below) if not empty,\nwithout checking for prefix match or host/target build type.\n\nAlso add extra primary/multi-dex location checking when\nopening an oat file. Since some tests were already creating\noat files from multiple dex files, rewrite the interface to\nbetter support that option, replacing the old argument\n`abs_dex_location` with `dex_filenames` that can provide\npaths to multiple dex files.\n\nTest: m test-art-host\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I36a9abca72872c41e4c10fdacbeadf551ca740dc\n"
    },
    {
      "commit": "5c8cc64b5f1580faf510f27527e7e22987174963",
      "tree": "cd1eda12b0278aeaa157f24daa9a9670d43b5b41",
      "parents": [
        "c8315d9134b2f41b9facdf7630b10d5e2e5c527e"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Nov 18 14:48:55 2019 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Dec 03 10:26:53 2019 +0000"
      },
      "message": "Use framework boot image extension.\n\nTest: m\nTest: ran art tests on device (all passed)\n\nBug: b/119800099\n\nChange-Id: I5e417cd2588ae7b88e7b6abf7ae54268d2cce5f8\n"
    },
    {
      "commit": "664999a12d6fc8a8ef5c0519b12ec1e8a51bb085",
      "tree": "f4ae1b0844ac075807229db9695ead7dec07ff8a",
      "parents": [
        "642af13b1b14794d8ab0db5cc82206213e648fa1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 08:47:26 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 08:47:45 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Allow structural redefinition on non-final classes.\"\"\n\nThis reverts commit f1b809ce611e943f926fff97cefe0930226ffcc2.\n\nReason for revert: Tests still fail\n\nBug: 134162467\nBug: 144168550\nChange-Id: Icdebc826b8630920b716afbfd6f338a29669fcc2\n"
    },
    {
      "commit": "f1b809ce611e943f926fff97cefe0930226ffcc2",
      "tree": "f75675383cf8018f9f333e608df35edbacf1c913",
      "parents": [
        "20b7a9b8aeaf76fc8f3248f211489fd00af73170"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 26 18:52:06 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 18:34:20 2019 +0000"
      },
      "message": "Revert^2 \"Allow structural redefinition on non-final classes.\"\n\nWe were incorrectly racing with the rest of the runtime in a couple of\nplaces. First we would return an ObjPtr of a newly defined class after\nholding it over a suspend point. This could lead to DefineClass\nreturning an obsolete class in some cases.\n\nWe also failed to ensure the class-status was synchronized between the\nold and new classes during structural redefinition. This could lead to\na class appearing to go backwards in status.\n\nThis reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d.\n\nReason for revert: Fixed issues causing test failures.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\n\nChange-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12\n"
    },
    {
      "commit": "88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d",
      "tree": "e3ee63ccca83c60c5790e51610349889f44daacf",
      "parents": [
        "8e895008a3e2f2813bb46cb0c6bc76884e46e9ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 26 14:13:44 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 15:55:26 2019 +0000"
      },
      "message": "Revert \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0.\n\nReason for revert: Breaks ART tests (see e.g. b/145197371).\n\nBug: 145197371\nBug: 134162467\nBug: 144168550\nChange-Id: Ia8e5788655057e380fc723a38900d26d69cda938\n"
    },
    {
      "commit": "c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0",
      "tree": "50df569420cd6746daadf1487933719d1f86d66b",
      "parents": [
        "dc540dfffb6863177143d024dd6f491775d77585"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 09:33:52 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 02:11:19 2019 +0000"
      },
      "message": "Allow structural redefinition on non-final classes.\n\nThis adds support for structurally redefining non-final,\nnon-finalizable classes. The only restriction is that one cannot\nredefine a class at the same time as any of its supertypes, if a\nstructural redefinition is occurring. The structural redefinition may\nnot remove any fields or methods, change the superclass or change the\nimplemented interfaces. Adding new methods or fields, both static or\nnon-static, public, private, protected, or package-private, is\nsupported.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nChange-Id: I32e9e854b3e56270170b10e8f5aba9de8f6bfdfa\n"
    },
    {
      "commit": "feba2643d0a2426e7a10462abcd3d168ee6a61dd",
      "tree": "50abfac9fff54bb7623edd47db886c8fb3b67444",
      "parents": [
        "26f6330d72e90b3162f8ead17a774a78effc82fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 19 13:22:18 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 19 15:47:41 2019 +0000"
      },
      "message": "Make HashSet behave like std::unordered_set...\n\n... instead of std::unordered_multiset. The old behavior is\nunexpected and error prone. CompilerDriver\u0027s attempts to\nprune image classes can fail due to this discrepancy.\n\nAlso avoid using std::iterator\u003c\u003e as it has been deprecated\nin C++17. Note that we erroneously used it as a private base\nclass rather that public, so it was not working anyway.\n\nTest: Add/update tests in hash_set_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Iaf459724562184cac6915e2b1e0b849371de8b53\n"
    },
    {
      "commit": "a9bbc08daad6d601c870c8493323f57b70373336",
      "tree": "8ca74373cac0fe52aced5f32cc6f6e1f9c3239b5",
      "parents": [
        "56f1332113c3b8b1844c04683b9cb9dc5a0bd346"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 14 14:51:41 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 15 19:17:23 2019 +0000"
      },
      "message": "Implement STL iterators on ObjectArray and add helpers\n\nIterating over an ObjectArray is rather cumbersome, requiring manual\nfor-loops. To improve ergonomics and STL standard-ness this implements\nstd::iterator\u0027s for ObjectArray and converts code to use this (in\nsimple situations). This should allow us to use standard STL functions\nin the future when dealing with ObjectArrays.\n\nAlso adds some helpers such as ZipCount and ZipLeft.\n\nTest: ./test.py --host\nChange-Id: Ifd515b8321775424b3256a6faf47b2ba970177d3\n"
    },
    {
      "commit": "267366ca19e7b71a63d3c4a02976cc56a6e58adc",
      "tree": "063ef118f770096ac667f5b4c7d22b75693896c0",
      "parents": [
        "fa2b2d35255515accd0aa69193aa5e72b009e38e"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Thu Oct 31 14:59:26 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 15:23:32 2019 +0000"
      },
      "message": "Only allow access to @TestApi signatures in instrumented processes.\n\nNote that the check is for \"pure\" @TestApi signatures, i.e. those that are on blacklist. If the signature is also annotated with @SystemApi or @UnsupportedApiUsage then it would not be on blacklist.\n\nBug: 133832325\nTest: manual\nChange-Id: I546fb42495331efd638d9def924ef33da0c80182\n"
    },
    {
      "commit": "201ffea4a91f1ff052bb72eedb44a3bff2a35c76",
      "tree": "c5c1757b9b3093ebf6f653d402153e1ed2af780f",
      "parents": [
        "7d48dcd51db4b950c22ec78ef3caa53fdf4214d3"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Thu Oct 31 14:58:03 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 31 19:01:57 2019 +0000"
      },
      "message": "Add tests for GreylistMaxQ.\n\nTest: mma test-art-host-gtest-hidden_api_test64\nBug: 133832325\nChange-Id: I1a91bcea501325fd4e79e25db1ed0be6e1028b49\n"
    },
    {
      "commit": "8852e5309a47c99d098aa85e8934cc06e8104807",
      "tree": "8316f4b25034531bacaab06aa235d64dd1f41e63",
      "parents": [
        "7cf5607f472020711e36eedbbfebb25b40d3f90e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 30 09:43:35 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 31 09:39:12 2019 +0000"
      },
      "message": "[jitzygote] Remap boot boot image methods in zygote when single-threaded.\n\nThis avoids concurrent updates made by other threads while copying the\ndata.\n\nBug: 143569713\nBug: 119800099\nTest: boots\nChange-Id: Ife0141a45b8d8671ab0c5868ccf90b4799a9f5db\n"
    },
    {
      "commit": "e3884e357566d739a33f22a0bdc4b76173cd6093",
      "tree": "d6169d034cb5a5d1c7e7a3cd0e9e6c18dd161f0b",
      "parents": [
        "45217376b527cd17d758152c54960e6786288e31"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 28 17:04:49 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 29 15:45:01 2019 +0000"
      },
      "message": "[jitzygote] Map the boot image fd after the contents have been written.\n\nIn order to not rely on undefined behavior from the kernel, map\nthe boot image methods fd after the shared mapping got updated with\nthe contents.\n\nBug: 119800099\nTest: BusinessCard\nChange-Id: I501b8994f2b0f2b27c4693443827ae1583f9fae4\n"
    },
    {
      "commit": "0a51605ddd81635135463dab08b6f7c21b58ffb0",
      "tree": "820f338333010f4d6e4b543ffea47e9ff7d2dd3f",
      "parents": [
        "e2727154f25e0db9a5bb92af494d8e47b181dfcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "message": "Revert \"Make compiler/optimizing/ symbols hidden.\"\n\nThis reverts commit e2727154f25e0db9a5bb92af494d8e47b181dfcf.\n\nReason for revert: Breaks ASAN tests (ODR violation).\nBug: 142365358\n\nChange-Id: I38103d74a1297256c81d90872b6902ff1e9ef7a4\n"
    },
    {
      "commit": "e2727154f25e0db9a5bb92af494d8e47b181dfcf",
      "tree": "0ddc6eec3ad9508d7eb1f2b941786dd0ed7d2cd8",
      "parents": [
        "c78860b91ae07eed92f86876e7a03132adea6fcd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 10 10:46:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 08:22:00 2019 +0000"
      },
      "message": "Make compiler/optimizing/ symbols hidden.\n\nMake symbols in compiler/optimizing hidden by a namespace\nattribute. The unit intrinsic_objects.{h,cc} is excluded as\nit is needed by dex2oat.\n\nAs the symbols are no longer exported, gtests are now linked\nwith the static version of the libartd-compiler library.\n\nlibart-compiler.so size:\n  - before:\n    arm: 2396152\n    arm64: 3345280\n  - after:\n    arm: 2016176 (-371KiB, -15.9%)\n    arm64: 2874480 (-460KiB, -14.1%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 142365358\nChange-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8\n"
    },
    {
      "commit": "39c399a9e85a8de74c6b47bc8cbc1e43b94ed54c",
      "tree": "a734a83f385e67a174a6576dfe0c8a266e7c9280",
      "parents": [
        "9bee62aa8ce05cd5f5154b8240e537b7c358530e"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri Sep 13 16:09:09 2019 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Tue Oct 08 15:09:57 2019 +0000"
      },
      "message": "Report any non-app signatures.\n\nBefore, veridex only reported signatures that were defined in the CSV file. This CL still preserves the same use case by default, but also allows reporting any other signatures as \"invalid\" if they are not defined in the --dex-files.\n\nTest: manual\nChange-Id: I10753d05bf9f418d2c8543be16cdfb335be9044c\n"
    },
    {
      "commit": "b55ef65e55dd4d01a9bdf315c09c090b73f7c19a",
      "tree": "04b9723f47ab2570a4eb825b0377c731216ea2c6",
      "parents": [
        "b096c918a5f20abb3426f1693435e230f2e07445"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 26 15:23:28 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 27 00:50:16 2019 +0000"
      },
      "message": "Improve VLOG_STREAM\n\nPreviously VLOG_STREAM would always print even if the module was\nturned off. This changes VLOG_STREAM to not print when the module is\noff. Like with LOG_STREAM the stream is consumed even if it\u0027s not\nprinted.\n\nAlso updated some ti_heap.cc logs to use LOG_STREAM.\n\nTest: ./test/run-test --host --dev 1981\nTest: ./test/run-test --host --dev --runtime-option -verbose:plugin 1981\nTest: ./test.py --host\nChange-Id: If709474918b3e67749647fae5accb0ce98ea3a59\n"
    },
    {
      "commit": "8b959958d1df3545957ddbce2be2ea21003a121c",
      "tree": "bbb4a420a4adeb5f4a49f69d78856055a95c3f49",
      "parents": [
        "7acb8464b04ab196159adbf96358b81de3017fea"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 20 16:32:05 2019 -0400"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 26 00:35:55 2019 +0000"
      },
      "message": "Restructure the profile compilation info tests\n\nRestructure the test to manipulate the profile using the same methods as\nthe profile saver (rather than using index based addition).\n\nThis will help with cleaning up the profile interface in preparation for a\nnew format.\n\nTo support the restructuring new classes were added to help create and\nmanage fake dex files which only have the location, checksum and number of\nmethods set.\n\nBug: 139884006\nTest: m test-art-host\nChange-Id: I9bf86b2244c01ffa9422df0fd5ee23a2a7ff8593\n"
    },
    {
      "commit": "7acb8464b04ab196159adbf96358b81de3017fea",
      "tree": "b2acd4ad7cdf455a8c720349c59127c07ece2047",
      "parents": [
        "5a0b6726562948421fbbeb38d20ffd66ef688ff8"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed Sep 11 12:16:12 2019 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Sep 25 19:10:02 2019 +0000"
      },
      "message": "Allow excluding API list values via command line arguments.\n\nThis replaces --only-report-sdk-uses as well. Note only ApiList::Value and not DomainApi are supported for now.\n\nTest: manual\nChange-Id: I7734eae1ebb0f922eb4652d29f1e1e4dce18cbec\n"
    },
    {
      "commit": "e58624f221b967553d7b71f14d8677ceaa000553",
      "tree": "00d6caa5ca66562d9c8e448abc77c0c6018fca0c",
      "parents": [
        "48349ad38887f65da76df268f8e548d508d8c6a1"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 20 15:53:40 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Sep 24 17:40:00 2019 +0000"
      },
      "message": "Various renames following the name change from \"Runtime APEX\" to \"ART APEX\".\n\nIn particular ANDROID_RUNTIME_ROOT is now ANDROID_ART_ROOT.\n\nTest: Build \u0026 boot\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\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --host --64\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nBug: 135753770\nChange-Id: Ia74da964e54cf396d66e9e12ea56da4e9483662a\n"
    },
    {
      "commit": "4ac0e1571e015a01d75091c3daef065f9624ad77",
      "tree": "4d13edeab88bd6fd724388c48385b0c3cca4f3a8",
      "parents": [
        "5a2301d897294ff4ee6de71f459dc2566dc3fa1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "message": "Revert \"Revert \"Basic structural redefinition support\"\"\n\nThis reverts commit 5a2301d897294ff4ee6de71f459dc2566dc3fa1a.\n\nBug: 134162467\n\nReason for revert: Relanding as unclear if issue is due to topic.\n\nChange-Id: Ib1d1cf2e9132e30c9649b760ae9ae2d8ceacf843\n"
    },
    {
      "commit": "5a2301d897294ff4ee6de71f459dc2566dc3fa1a",
      "tree": "2bd06ab3f463734994b3d251f6115514520dbb3f",
      "parents": [
        "4eb6eb40e88214fcc874d93e75660cb580cb4d58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:11:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:12:13 2019 +0000"
      },
      "message": "Revert \"Basic structural redefinition support\"\n\nThis reverts commit c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c.\n\nBug: 134162467\n\nReason for revert: Breaks on redefine-stress\n\nChange-Id: I4e38da23d65b5b34b26b5ab537a3583328e078a4\n"
    },
    {
      "commit": "c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c",
      "tree": "f8647487e7465712fd73118ceb89e13167a12648",
      "parents": [
        "1ba7e8c10af4e270864a417044244d63db53ccf5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 13 10:50:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 17 23:52:12 2019 +0000"
      },
      "message": "Basic structural redefinition support\n\nThis adds basic support for adding methods and fields to already\nloaded classes using redefinition. This \u0027structural class\nredefinition\u0027 is currently limited to classes without any virtual\nmethods or instance fields. One cannot currently structurally redefine\nmultiple classes at once nor will structural redefinition trigger the\nstandard redefinition events.\n\nAfter structural redefinition all references to the old class, and its\nfields and methods are atomically updated. Any memory associated with\nthe static fields of the old class is zeroed. Offsets for field access\nmight change.  If there are any active stack frames for methods from\nthe redefined class the original (obsolete method) code will continue\nto execute. The identity hash code of the redefined class will not\nchange. Any locks being held, waited or blocked on by the old class\nwill be transferred to the new class.\n\nTo use this feature the process must be debuggable and running with\n-Xopaque-jni-ids:true.\n\nFor device testing use a wrap.sh that adds the following flags:\n\n    \u0027-Xopaque-jni-ids:true -Xcompiler-option --debuggable -XjdwpProvider:adbconnection\u0027\n\nStructural redefinition only available using the\n\"com.android.art.UNSAFE.class.structurally_redefine_class_direct\"\nextension. This will not trigger the normal class-redefinition events.\nOnly one class may be redefined at a time.\n\nNB There are still some holes in this potentially allowing obsolete\nmethods/fields to be visible. Most notably during jni-id, MethodHandle\nand VarHandle creation as well as potentially other places in the\nruntime. These holes will be closed by later CLs. Until then the\nextension to access structural class redefinition will remain tagged\nas UNSAFE.\n\nTest: ./test.py --host --all-compiler\nBug: 134162467\n\nChange-Id: I825d3a4bdb9594c0147223ae69f433ce9bbfc307\n"
    },
    {
      "commit": "3f43b9314da361811bb3cd258b28dff0fe56e7cc",
      "tree": "d4e5a326e06d8db06e42e8c7d81512ef6a256f7f",
      "parents": [
        "5012df2a3f16d62845182f225c92157e9bb64a27"
      ],
      "author": {
        "name": "Wang Han",
        "email": "wanghan1995315@gmail.com",
        "time": "Sat Sep 14 16:47:47 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 17 03:44:18 2019 +0000"
      },
      "message": "libartbase: Check kernel support for membarrier(2)\n\n * Avoid logspam in dmesg on unsupported kernels.\n\nChange-Id: Iad18b1c93723fc8f21fa746fe6084232c4f5cc22\n"
    },
    {
      "commit": "d6fa4f24eae85b97c13728b846c430a8464839ee",
      "tree": "0e392007f44abbedba3aa8452c74fe5391dc9260",
      "parents": [
        "4fb71cc45b056b862680e2fecff55f855bd57795"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 11 14:45:31 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 12 17:29:44 2019 +0000"
      },
      "message": "Add some helper functions/constructors to ArraySlice\n\nThe ArraySlice has some nice functions for dealing with arrays. Add\nhelper constructors to make an ArraySlice out of the commonly used\nLengthPrefixedArray and their pointers. Also add some convenience\nthings such as getting the offset of an element and tightening the\nContains check to ensure that the input is properly aligned.\n\nTest: ./test.py --host\nBug: 140891089\nChange-Id: If8350c5716db943d86cae32ed7b17aa8f036c978\n"
    },
    {
      "commit": "4945b29e6ea494fffc924f5940601af58d2b28ab",
      "tree": "f762c8cee1cbfb7cf588378c09b674f3a9dbac17",
      "parents": [
        "2afa19db9e344a119f6807f7c54102204795bc54"
      ],
      "author": {
        "name": "Mariia Feofanova",
        "email": "mfeofanova@google.com",
        "time": "Wed Sep 04 17:49:42 2019 +0100"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Sep 11 14:39:43 2019 +0000"
      },
      "message": "hiddenapi: add \u0027test-api\u0027 flag into dex files.\n\nOnly tests should have access to @TestApi signatures. But now all of them are greylisted, hence can be accessed by anyone. This should be changed so that grey/black/whitelist properties would be orthogonal to test-api.\n\nThe first step to fix this is to introduce extra flag and embed it into dex files. In the future access decisions will be made based on that flag.\n\nBug: 133832325\nTest: make -j32 test-art-host-gtest-hiddenapi_test\nChange-Id: I0db8938391d6aefe5e9a3bc51ec99b948ae41f6d\n"
    },
    {
      "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"
    }
  ],
  "next": "ad909af6c4be163bf2d5f4ca1e0487cc619a5041"
}
