)]}'
{
  "log": [
    {
      "commit": "17af7a80b8ef2ddeef8d29eeb7349107d4ff3ff1",
      "tree": "161f00a16bb8261cb2c98e1072352eafcc911e14",
      "parents": [
        "3c137bfbdde0a36a3869b6e33f0cfa23dca0b074"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Mon Aug 30 23:20:01 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 31 20:26:39 2021 +0000"
      },
      "message": "Stop using `group_static_libs` property\n\nThis property is now ignored, so there is no need to set it.\nFor more details, see the bug and/or \"Effecient archive file handling\"\nin https://lld.llvm.org/NewLLD.html#key-concepts\n\nBug: 189475744\nTest: Manual build succeeds\nChange-Id: I24879f7f88f83b8826bc15979f2264fa8eb856a3\n"
    },
    {
      "commit": "3c137bfbdde0a36a3869b6e33f0cfa23dca0b074",
      "tree": "1f3f112651cba0c253d651bb82592ba84b1d9e41",
      "parents": [
        "0f803ce0869ffcdc20a8cf9575cfcb2662f862ec"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Aug 26 21:34:52 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Aug 31 19:10:37 2021 +0000"
      },
      "message": "Allow visibility on libdexfile for all libdexfile_support users.\n\nAlso add a note that libdexfile_support users also need to depend on\nlibdexfile.\n\nTest: m droid\nBug: 197856821\nBug: 169779783\nChange-Id: I80162942a6557b0309ccde28c058cdf66c1fa250\n"
    },
    {
      "commit": "0f803ce0869ffcdc20a8cf9575cfcb2662f862ec",
      "tree": "7904714523c72e6b622ef964acf171debc90e8d9",
      "parents": [
        "611d71c6710613a69698a80d60de9725a513703d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Aug 31 13:57:24 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Aug 31 18:00:18 2021 +0000"
      },
      "message": "find_api_violations.pl: sync strings with hiddenapi_flags.h\n\nFollows names described in go/hiddenapi-list-renaming.\n\nFix: 161336379\nTest: N/A\nChange-Id: I76503c32bd654983ae514a59159cefe22377c04f\n"
    },
    {
      "commit": "611d71c6710613a69698a80d60de9725a513703d",
      "tree": "080fec2740d793fc8cf61a5607c31ed51cec1b97",
      "parents": [
        "98f01d1deac3a938e49f0725c58798e38ef59277"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Aug 27 17:00:10 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Aug 31 18:00:18 2021 +0000"
      },
      "message": "Fix a few non-inclusive terms\n\nLargely based on go/hiddenapi-list-renaming\n\nBug: 161336379\nTest: TH\nChange-Id: Iaa06eed26ab0cb9bb4e2995a148f3251386ad33d\n"
    },
    {
      "commit": "98f01d1deac3a938e49f0725c58798e38ef59277",
      "tree": "dcbf841ef87fdb1baf21f231e20cc9bd9f3cb0df",
      "parents": [
        "96dadefd24331f6808cb287048269ba772423c33"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 28 14:33:34 2021 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Aug 31 16:13:39 2021 +0000"
      },
      "message": "Revert^2 \"Compile time null checks for VarHandle intrinsics.\"\n\nThis reverts commit 4a889b7f1e58368f0ffd795eaa24f2f493ccab8d.\n\nReason for revert: relanding the original change after fixing the\n  baseline compiler.\n\nStatic checks for VarHandle intrinsics are now done in two places:\n\n 1) Simple static checks are done for both baseline and optimizing\n    compilers in `HInstructionBuilder::BuildInvokePolymorphic`.\n\n 2) More complex checks are done in instruction simplifier only for the\n    optimizing compiler. They can use information provided by preceding\n    optimization passes.\n\nBug: 191765508\nTest: art/test.py --host -r\nChange-Id: I92932f6fcf408c700e6db0101fe2fb1e8300a54a\n"
    },
    {
      "commit": "96dadefd24331f6808cb287048269ba772423c33",
      "tree": "5780533c94b5d46f86fb372fc1516f35f78d2048",
      "parents": [
        "12dd6fc8d125e594376fdca306da315d01f12069"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Aug 29 16:51:55 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 31 12:53:59 2021 +0000"
      },
      "message": "Partial LSE: handle all kinds of infinite loops.\n\nA subgraph could also have an infinite loop.\n\nTest: 826-inifinite-loop\nBug: 196246395\nChange-Id: Ifd1e1ae0f42dfe2cc156386fc166101c20748fc9\n"
    },
    {
      "commit": "12dd6fc8d125e594376fdca306da315d01f12069",
      "tree": "61923814fd7c505a7d96d8bb54c5fedc2a8dc713",
      "parents": [
        "d44add98a69ac112c44423bced92b37cc495da86"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 27 18:41:47 2021 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 30 18:35:19 2021 +0000"
      },
      "message": "Reland \"Trigger fewer GCs during startup\"\"\n\nThis reverts commit da90ab4ebb233a0f38f7bb226892244c048ae275.\n\nPS1 is identical to aosp/1653767 :\n\nInstead of explicitly triggering a GC after two seconds, gradually\nreduce the GC triggering threshold. In particular, a small process\nthat almost immediately goes into the background should GC only\nas part of the transition to background.\n\nEnsure that the first collection is a full (technically \"partial\",\nnon-sticky) gc, that tries to collect everything but zygote space.\nThere should be very few allocated objects except in zygote space.\n\nClarify the concurrency rules for accessing concurrent_start_bytes_\nin the process.\n\nPS2:\nAdds code to explicitly trigger a GC if none has been triggered\nin the first 30 seconds or so. For AOSP, this happens in seven\nprocesses.\n\nNo longer condition any of this on the CC collector. I don\u0027t see\nwhy that should matter.\n\nTrigger the low-allocation GC above even in low memory mode. I think\nwe want to especially do it in that case. We were previously not doing\nthat, probably it was tied to increasing the heap size.\n\nTest: Build and boot AOSP.\nTest: Manual log inspection with extra logging.\nBug: 181351667\nBug: 197780496\n\nChange-Id: I822224bef3e97c2ab1f803eafe97bcdd21b9cd4e\n"
    },
    {
      "commit": "d44add98a69ac112c44423bced92b37cc495da86",
      "tree": "14d621a776ad035e177ea91c5c6892756dd0a066",
      "parents": [
        "059210dd634396b9a8d8b2cefb8637791894cb3c"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Aug 25 09:47:30 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 30 16:31:01 2021 +0000"
      },
      "message": "odrefresh: Allow extra 30s for subprocesses in VM\n\nThe test is still flaky (9.2% on aosp-master, cuttlefish on GCE) due to\nthe timeout. Give it extra time to see if it helps.\n\nBug: 197275229\nTest: TH\nChange-Id: I850cc14103599a0a6c141834d1deb166f0cee597\n"
    },
    {
      "commit": "059210dd634396b9a8d8b2cefb8637791894cb3c",
      "tree": "267dd5cf3c0cced92e8d98573b66eaf0360bfafe",
      "parents": [
        "95bb995004cb8241196390ba1680811b7a428770"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 26 20:52:44 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Aug 29 11:44:21 2021 +0000"
      },
      "message": "Make smali compilations deterministic\n\nThe smali compilation in run-tests are non-deterministic.\nHowever, we don\u0027t observe that much, as most tests are\ndex-merged by D8 which normalize it back to deterministic.\n\nThe non-determinism is only observed for few tests where\nwell-intended short-cut bypasses the dex merger.  Let\u0027s\nremove that short-cut to get deterministic build output.\n\nAlso pass the proper test\u0027s API level to the dex merger.\nThis avoids bumping dex file version to maximum as side\neffect of the no-op merge.  It also avoids excessive log\nspam as the previous input was invalid.  And it avoids\nbumping the dex file version to max for tests that need\nmerge, which gives us more version variety for tests.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: I4af262aef3305a90d8cb8d14d87f7c52b9dd734a\n"
    },
    {
      "commit": "95bb995004cb8241196390ba1680811b7a428770",
      "tree": "bed1979bd75cb8c18fe28b7733739cee1f144d2c",
      "parents": [
        "f68f9182acacc387f82a16d003c8e00e927b1a72"
      ],
      "author": {
        "name": "Jared Duke",
        "email": "jdduke@google.com",
        "time": "Wed Aug 11 15:07:25 2021 -0700"
      },
      "committer": {
        "name": "Jared Duke",
        "email": "jdduke@google.com",
        "time": "Fri Aug 27 18:03:53 2021 +0000"
      },
      "message": "Remove unused MadviseState hints\n\nThe only MadviseState enum value that is used is MadviseStateAtLoad.\nRemove the enum entirely in favor of explicit load semantics for the\nOatDexFile::MadviseDexFile call.\n\nFollow-up work will address some of the existing madvise behavior for\nlow-RAM devices, particularly as it relates to the more recently added\nmadvise knobs like dalvik.vm.madvise.vdexfile.size.\n\nBug: 196052575\nTest: test-art-host\nChange-Id: I88211efce9193dc4c45274957898ce7b94eb330c\n"
    },
    {
      "commit": "f68f9182acacc387f82a16d003c8e00e927b1a72",
      "tree": "ef66ff32d0a0275bf6c7820ac31e39d953728282",
      "parents": [
        "da90ab4ebb233a0f38f7bb226892244c048ae275"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 26 12:05:43 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 27 15:55:28 2021 +0000"
      },
      "message": "Document restriction on checkpoint code\n\nAdd explicit restriction on mutexes (and thus Java monitors) acquired\nin checkpoint code.\n\nTest: retext --preview\nBug: 195724468\nChange-Id: Ice883ee34fcbe1e00935363bff23b1417da9a183\n"
    },
    {
      "commit": "da90ab4ebb233a0f38f7bb226892244c048ae275",
      "tree": "1e3023bb7bc78e1211657a909981f7b801c1c267",
      "parents": [
        "f1865b3e0c03d40eb38df227603a3418fee41da5"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 27 04:20:10 2021 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 27 15:38:02 2021 +0000"
      },
      "message": "Revert \"Trigger fewer GCs during startup\"\n\nThis reverts commit 7d992f714a69c94c95ee7f1ae7e96acb30a9a682.\n\nReason for revert: See b/197780496. We end up with some processes retaining their startup garbage for a long time. I think that\u0027s easy to fix.\n\nChange-Id: Icb95322c7c994b1d90d07662d1a82055dacda8ea\n"
    },
    {
      "commit": "f1865b3e0c03d40eb38df227603a3418fee41da5",
      "tree": "a1c97651c5970a7a67f461baecd1899b93d8f338",
      "parents": [
        "4fba66c84245be79b1b32cbfa1584cfc5a87f053"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Aug 24 18:33:45 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Aug 27 14:36:13 2021 +0000"
      },
      "message": "odrefresh: minor diagnostic improvements\n\nFix potentially unchecked access to the value of a std::optional\nfield.\n\nLog the ART APEX version when checking artifacts. Useful for issues\nwithout a bugreport.\n\nBug: 197489543\nTest: boot \u0026 check logcat, manually test with broken xml derived C++\nChange-Id: I7691d9eaa52206b125760e414f065be9d0358009\n"
    },
    {
      "commit": "4fba66c84245be79b1b32cbfa1584cfc5a87f053",
      "tree": "84dc54b5f50146e99449bae6da2cfa979e399297",
      "parents": [
        "4bd6795677dad1e4856b6fe458725adbefb57c94"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 26 18:49:04 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 27 14:00:13 2021 +0000"
      },
      "message": "Inline caches: be more robust in the presence of framework change.\n\nWhat used to be a class could be changed into an interface. Test for\nthat case as well.\n\nTest: test.py\nBug: 194817322\nChange-Id: I4c225640b45c529d440faa701ed29f978b7cbd28\n"
    },
    {
      "commit": "4bd6795677dad1e4856b6fe458725adbefb57c94",
      "tree": "6916163e451f70dff7909693d56c29cee04f70b2",
      "parents": [
        "3a014e3110d292828b8300afbee0d2f5d053f447"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 25 13:32:23 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 26 17:53:57 2021 +0000"
      },
      "message": "More run-test build determinism tweaks (part 2)\n\nAlso fix couple issues in host and jvm builds.\n\nNon-determinism smali and d8 itself is the only remaining issue.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: Icd5722600d9addf7c8a325cdf4a839882da8c302\n"
    },
    {
      "commit": "3a014e3110d292828b8300afbee0d2f5d053f447",
      "tree": "d4293406298e76757c2ccf7a84973ddfa78dd9fb",
      "parents": [
        "3b0914011b918c52ef963db2387d888eef034265"
      ],
      "author": {
        "name": "Stelios Ioannou",
        "email": "stelios.ioannou@linaro.org",
        "time": "Fri Jun 25 15:15:32 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Aug 25 14:40:32 2021 +0000"
      },
      "message": "ART: Change error-reporting of run-test-jar\n\nIn the run-test-jar script used by the host and target test scripts,\ncertain error-exit messages are displayed. When running the host and\ntarget test scripts, these error-exit messages are easy to miss.\n\nThe error-exit messages are now passed to a new function called\n\"error_msg()\" to be displayed in bold and red to make them easier\nto spot. Additionally, the exit statement is called within the function\nto avoid code duplication.\n\nTest: ./art/test/run-test --gdb --gdbserver --host 491-current-method\n\nChange-Id: I6929aaa971f48e04918152042596f3aaa988c609\n"
    },
    {
      "commit": "3b0914011b918c52ef963db2387d888eef034265",
      "tree": "7c1867568e7ba54ec2438863589916c060871488",
      "parents": [
        "7d992f714a69c94c95ee7f1ae7e96acb30a9a682"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 25 13:42:27 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 25 13:42:27 2021 +0100"
      },
      "message": "Remove art_chroot build target.\n\nArtGtestsTargetChroot depends on the ART apex directly now,\nand the rest of apexes is unused. We switched to using the\ndevice apexes for other modules (i.e. not updating them).\n\nBug: 196361021\nBug: 187416712\nTest: atest ArtGtestsTargetChroot\nChange-Id: I6705224ec4821997dc1546fcf734ca19a1e265dd\n"
    },
    {
      "commit": "7d992f714a69c94c95ee7f1ae7e96acb30a9a682",
      "tree": "6fb1f280a29b2f731e6de0105173bb4e3d21ab39",
      "parents": [
        "9d642a84fbf39c65895ccd25c2b104b4917e43e8"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Mar 15 11:19:33 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 25 01:39:17 2021 +0000"
      },
      "message": "Trigger fewer GCs during startup\n\nInstead of explicitly triggering a GC after two seconds, gradually\nreduce the GC triggering threshold. In particular, a small process\nthat almost immediately goes into the background should GC only\nas part of the transition to background.\n\nEnsure that the first collection is a full (technically \"partial\",\nnon-sticky) gc, that tries to collect everything but zygote space.\nThere should be very few allocated objects except in zygote space.\n\nClarify the concurrency rules for accessing concurrent_start_bytes_\nin the process.\n\nTest: Build and boot AOSP\nBug: 181351667\nChange-Id: Id85d7e405b9305a70ba751a82ab7c2226eb83308\n"
    },
    {
      "commit": "9d642a84fbf39c65895ccd25c2b104b4917e43e8",
      "tree": "ec5e9f9a6d8b86b7af9b686c7ff1148087a5a1a7",
      "parents": [
        "eba362de5efc844f3b97901564f4861b3f6a9e2b"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu Aug 19 13:16:00 2021 -0700"
      },
      "committer": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Tue Aug 24 19:08:27 2021 +0000"
      },
      "message": "dex2oat: Avoid an open from /proc/self/fd\n\nReadCommentedInputStream reads a text file by line, filters out empty or\ncommented line, then send the line to a callback. The original\nimplementation uses ifstream and std::getline.\n\naosp/1734115 added a way to read the text file by FD. Since there\ndoesn\u0027t seem to be a way in C++ to convert the FD to an input stream,\nit creates one by opening /proc/self/fd/43.\n\nIn the context of Comp OS, this requires giving dex2oat a special open\nprivilege to \"authfs\".\n\nThis change replaces ifstream/std::getline with f(d)open/getline(3).\n\nBug: 196404749\nTest: TH\nTest: Disallow open for dex2oat in microdroid, ComposHostTestCases still\n      pass\nIgnore-AOSP-First: merge conflict resolution\nMerged-In: I257f471b2afc80b6f1e1f8fa25248abc7ff5a3d5\nChange-Id: I257f471b2afc80b6f1e1f8fa25248abc7ff5a3d5\n"
    },
    {
      "commit": "eba362de5efc844f3b97901564f4861b3f6a9e2b",
      "tree": "ae8d8005f4014899da660075506e44e368d9db39",
      "parents": [
        "2a7b69d0991ce2095c73c22ffbb08a11762b68af"
      ],
      "author": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Tue Aug 24 14:33:26 2021 +0200"
      },
      "committer": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Tue Aug 24 14:33:26 2021 +0200"
      },
      "message": "[luci][realms] use LUCI realms on all ART builds.\n\nR\u003dngeoffray\n\nBug: chromium:1232009\nBug: https://crbug.com/1232009\nChange-Id: I5f971fcd5991249dc7c41bf7769d84fdc8e41706"
    },
    {
      "commit": "2a7b69d0991ce2095c73c22ffbb08a11762b68af",
      "tree": "b0eb4868d36f74b40cf096a915425f1b391d12e6",
      "parents": [
        "3326fcea1ead5d5d360a053704faad27b6dd8c40"
      ],
      "author": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Tue Aug 24 14:33:16 2021 +0200"
      },
      "committer": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Tue Aug 24 14:33:16 2021 +0200"
      },
      "message": "[luci][realms] use LUCI realms on 20% of builds.\n\nR\u003dngeoffray\n\nBug: chromium:1232009\nBug: https://crbug.com/1232009\nChange-Id: Id0dca67777b8d363be7ab25df59e2b5d9c1ab54b"
    },
    {
      "commit": "3326fcea1ead5d5d360a053704faad27b6dd8c40",
      "tree": "5e7925762a883b4d208bcbe1fb3b87ccc5088313",
      "parents": [
        "ccbcfb17c9eabee791d674b794e696da10b1b28b"
      ],
      "author": {
        "name": "Hu Wang",
        "email": "hu.wang@mediatek.com",
        "time": "Mon Aug 23 17:41:57 2021 +0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 24 09:49:43 2021 +0000"
      },
      "message": "Fix android.security.cts.FileDescriptorTest#testCLOEXEC\n\nWhen ART is mainline, it will create memFd boot-image-methods.art\nwithout MFD_CLOEXEC.\nAdd MFD_CLOEXEC flag when create boot-image-methods.art memFd.\n\nBug: 197498527\nTest: run cts CtsSecurityTestCases pass\n\nChange-Id: If941c036f7adb598d67ec2b2c5bc4cb24994e3a1\n"
    },
    {
      "commit": "ccbcfb17c9eabee791d674b794e696da10b1b28b",
      "tree": "75393520dd83f976246d5152ae4f97613691b56d",
      "parents": [
        "a7e7426a89bb5d1255a0a6f90cc3efb0a83d9195"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Aug 23 15:10:35 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Aug 24 03:31:06 2021 +0000"
      },
      "message": "Revert^2 \"Add unit tests for odrefresh - step 2\"\n\nThis reverts commit b89649bd95cffec48f6f6746054553f71ab3e807.\n\nReason for revert: Fixed the fugu build breakage\n\nThe test failed on fugu because fugu is running Android O, while the\ntest depends on a system property introduced in S. Since the whole\nodrefresh program is for S and later, we don\u0027t need to run the test on\nolder platforms. This failure is fixed by adding a check on the API\nlevel and skipping the test if the API level is below S.\n\nBug: 196188549\nTest: atest art_standalone_odrefresh_tests\n\nChange-Id: I484696d065d715da65ae262a5aa8b3e1b30ffdcf\n"
    },
    {
      "commit": "a7e7426a89bb5d1255a0a6f90cc3efb0a83d9195",
      "tree": "3885cabe7032e514f21d4d58f02c94aab062f2ba",
      "parents": [
        "9bbecd08cccaae45cee9d87e72faeacb6b9ffe5b"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Fri Aug 20 09:25:37 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 23 19:14:01 2021 +0000"
      },
      "message": "Give extra time for odrefresh subprocess in VM\n\nBug: 197275229\nTest: run test on cuttlefish for several times\nChange-Id: I380c6f9a1aaeafc726bfb0257d46c8531fe090d6\n"
    },
    {
      "commit": "9bbecd08cccaae45cee9d87e72faeacb6b9ffe5b",
      "tree": "ef5134ec07aec16cdd22685ce4d9f8d1ce8a1c1a",
      "parents": [
        "f912a1fcb7838eef1963d429585f852d56ae94fb"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Aug 11 15:59:22 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 23 18:47:01 2021 +0000"
      },
      "message": "Suppress OptionalOfRedundantMethod error\n\nErrorprone is being updated from 2.7.1 -\u003e 2.8.1, which\nadds a OptionalOfRedundantMethod check, which has default\nseverity level ERROR.\n\nSuppress it here as it\u0027s part of a test of Optional.\n\nBug: 190944875\nTest: Patch aosp/1792988, then `m RUN_ERROR_PRONE\u003dtrue javac-check`\nChange-Id: I8a7152be0e2ac24eda5d377ef5cfef102487a5dc\n"
    },
    {
      "commit": "f912a1fcb7838eef1963d429585f852d56ae94fb",
      "tree": "2ed692d61ce20be9c017c8eafda48425876ec86e",
      "parents": [
        "e261356db98dc27bcec4048b3eaf9834864169aa"
      ],
      "author": {
        "name": "Joel Goddard",
        "email": "joel.goddard@linaro.org",
        "time": "Mon Aug 02 14:12:11 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Aug 23 15:55:31 2021 +0000"
      },
      "message": "Renamed test/580-fp16 to test/580-checker-fp16\n\nPrepare for checker tests to be added to this testfolder in upcoming\ncommits by renaming folder.\n\nTest: 580-checker-fp16\n\nChange-Id: I74c50a8464f86ea93b42af6aaa20c0f02b603636\n"
    },
    {
      "commit": "e261356db98dc27bcec4048b3eaf9834864169aa",
      "tree": "7b6aa115ccf3dbbc646e625ee714289eb1b1076b",
      "parents": [
        "b89649bd95cffec48f6f6746054553f71ab3e807"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 18 22:46:32 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 23 12:42:44 2021 +0000"
      },
      "message": "Add a lock contention palette hook.\n\nBug: 196334695\nTest: m\nChange-Id: Id87cfc30957baa5e575947fc69d6f307e843dcf8\n"
    },
    {
      "commit": "b89649bd95cffec48f6f6746054553f71ab3e807",
      "tree": "faaff2611b018e4864b29d1f5df47b2d0187b8d2",
      "parents": [
        "054c8008272861c4c2a845424a3be6705f884d93"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Aug 23 10:48:17 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 23 12:26:31 2021 +0000"
      },
      "message": "Revert \"Add unit tests for odrefresh - step 2\"\n\nThis reverts commit b91dad2b98e8c562aed7c4471615d7c325756c08.\n\nReason for revert: breaks builds on fugu.\n\nBug: 196188549\nChange-Id: Iec08674c2ed53b8e6048c044d5e72fdd26518a83\n"
    },
    {
      "commit": "054c8008272861c4c2a845424a3be6705f884d93",
      "tree": "1ff9f5ca393947efcf9d36a3ad91307bcbfec075",
      "parents": [
        "b91dad2b98e8c562aed7c4471615d7c325756c08"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 13 12:41:57 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 20 15:43:08 2021 +0100"
      },
      "message": "More run-test build determinism tweaks\n\nEnsure 089 build script \"passes\" (i.e. expected error is seen).\nThis was the only (intentionally) failing test.\n\nUse more of prebuilt tools rather than system tools.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: I1401edb363312105ecc0da5a5ec41b8be5420798\n"
    },
    {
      "commit": "b91dad2b98e8c562aed7c4471615d7c325756c08",
      "tree": "85f1d6092a86116555f785a4f906b5f852aa1fca",
      "parents": [
        "3bc03531d1ae5cbe5b0a7ac34c10d5c51f20f233"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Aug 16 03:20:07 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 20 12:59:57 2021 +0000"
      },
      "message": "Add unit tests for odrefresh - step 2\n\n- Define MockableExecUtils, which is a wrapper class to make exec_utils\nmockable.\n- Add another constructor to the OnDeviceRefresh class to support\ninjections.\n- Update OdrConfig to support overriding the staging directory.\n- Add a unit test to verify that odrefresh sets compiler filter based on\n\"dalvik.vm.systemservercompilerfilter\".\n\nBug: 196188549\nTest: atest art_standalone_odrefresh_tests\nTest: atest odsign_e2e_tests\nChange-Id: Ia7b4347bba6873878490a513b8a5ff6642122d71\n"
    },
    {
      "commit": "3bc03531d1ae5cbe5b0a7ac34c10d5c51f20f233",
      "tree": "e591b077ebbe9040a109d49cc9fad06cdad877c9",
      "parents": [
        "1e6be713904fb24db9e9cd1d38694309e03e5f29"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 19 13:55:30 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 19 13:55:30 2021 +0100"
      },
      "message": "Fix missing MsToNs in profile saver.\n\nTest: test.py\nBug: 194880260\nChange-Id: I30b5608ef891805754986a0e00207e017280a97e\n"
    },
    {
      "commit": "1e6be713904fb24db9e9cd1d38694309e03e5f29",
      "tree": "3981019976b3ae296c91b38da3738c834eddc2b3",
      "parents": [
        "0529cfa3efd0f6f7a167aa833fce99d6cf29a518"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 18 16:28:06 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 19 08:14:35 2021 +0000"
      },
      "message": "Disable errorprone builds for art runtests\n\nThe individual art runtests were disabling errorprone checks, but\nnow Soong supports disabling errorprone builds completely.\n\nAlso disable errorprone for art_cts_jvmti_test_library, which also\ncontains some of the same problematic java files.\n\nBug: 197157393\nTest: m RUN_ERROR_PRONE\u003d1 javac-check\nChange-Id: Ia7f9e30962a96f6f751229109f9c4bc0eb8ad711\n"
    },
    {
      "commit": "0529cfa3efd0f6f7a167aa833fce99d6cf29a518",
      "tree": "e0079b2b55ecb84f11582eb65387d92cc36e570c",
      "parents": [
        "555eefef9a27995ef341cdf44ed60c61953e2e3f"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 16 16:50:28 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 18 17:14:17 2021 +0000"
      },
      "message": "Add GC deadlock discussion\n\nOnly comment and markdown changes.\n\nBug: 195336624\nBug: 195261575\nTest: Treehugger\nChange-Id: I3118ab4009c7f31006b62714ee36b5287f33aa3f\n"
    },
    {
      "commit": "555eefef9a27995ef341cdf44ed60c61953e2e3f",
      "tree": "4f8ee1eb27d9b559ea85ff54a80d9e5e4aaff9ca",
      "parents": [
        "59033773f2fc900c7be96b4e513bee62ad3342af"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Aug 17 15:55:40 2021 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Aug 18 16:58:57 2021 +0000"
      },
      "message": "Replace weak-ref access disable checkpoint with STW pause\n\nDisabling weak-ref access in ConcurrentCopying collector can lead to\ndeadlocks. For instance, if mutator M1 acquires W1 mutex and then\nparticipates in the checkpoint and then gets blocked in getReferent(),\nwaiting for the gc-thread to finish reference processing. Mutator M2\nwaits for M1 to release W1 so that it can acquire the mutex before\nparticipating in the checkpoint. On the other hand, GC-thread waits\nfor M2 to finish checkpoint.\nA STW pause avoids the deadlock by ensuring that mutators are not\nblocked on weak-ref access before the pause, and GC-thread can make\nprogress after the pause in reference processing.\n\nBug: 195336624\nBug: 195261575\nTest: art/test/testrunner/testrunner.py\nChange-Id: I03d6bcd4d53f37ec84064edd8292951d30f48eaf\n"
    },
    {
      "commit": "59033773f2fc900c7be96b4e513bee62ad3342af",
      "tree": "440901273cde56e25d8bb9ce6ac9294684edcbbf",
      "parents": [
        "da106a9998d951118c26cb326906817fe1528a4b"
      ],
      "author": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Mon Aug 16 12:31:30 2021 +0200"
      },
      "committer": {
        "name": "Andrii Shyshkalov",
        "email": "tandrii@google.com",
        "time": "Wed Aug 18 16:31:23 2021 +0000"
      },
      "message": "[luci][realms] configure LUCI realms.\n\nMotivation: this is a migration to more hardened security ACLs inside\nLUCI. Most notably, the end goal is better isolation between projects\nusing LUCI.\n\nR\u003dngeoffray\n\nBug: chromium:1232009\nBug: https://crbug.com/1232009\nChange-Id: Ie680943ab0ab380c458cf951cc8a4c761e9506c9\n"
    },
    {
      "commit": "da106a9998d951118c26cb326906817fe1528a4b",
      "tree": "1dbbd36d5dce96fa515d0bc3a7f98df01d908fd1",
      "parents": [
        "32f8b06742a651e3d674831a18970a7d8d34a31b"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Aug 18 05:48:12 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 18 15:37:00 2021 +0000"
      },
      "message": "Fix odsign_e2e_tests to accurately get file modified time in ms.\n\nBefore this change, we were using \"stat -c \u0027%.3Y\u0027\" to get file modified\ntime in ms. However, the Toybox\u0027s `stat` implementation truncates to\ntimestamp to seconds, making the timestamp not accurate enough, and\ncauses the test to be flaky. Flakes observed when odrefresh compiles\nartifacts right after a boot in a test, where the compilation time and\nthe boot time only differ in milliseconds.\n\nThis change fixes the problem by using \"stat -c \u0027%y\u0027\" and converting the\nformatted time into timestamp in Java.\n\nBug: 193616266\nTest: atest odsign_e2e_tests\nChange-Id: I36c571e9cafc2b4e99ae20f196a138834d7f57e0\n"
    },
    {
      "commit": "32f8b06742a651e3d674831a18970a7d8d34a31b",
      "tree": "7be683461716782254b17fa80743fccb67a18e4f",
      "parents": [
        "496e837a3a4cdddc95f87c6bdf5ea455015f63d0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 02 14:35:49 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 18 14:40:28 2021 +0000"
      },
      "message": "Remove direct uses of C++ compiler from run-test build\n\nAvoid calling the system compiler as part of run-tests.\nThese uses are making porting to soong build tricky.\n\nIt would be possible to build the generators in soong,\nbut it is much simpler to just rewrite them in python.\nThis is in line with what majority of other run-tests do.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: I97cd54c85db81d70795bd5321a452c3306f06b72\n"
    },
    {
      "commit": "496e837a3a4cdddc95f87c6bdf5ea455015f63d0",
      "tree": "47b1d16d3c6c4a2987831454ad8a502bbff753a2",
      "parents": [
        "8d3d64f57da1cd501405d1e5588cdf18ac1894ee"
      ],
      "author": {
        "name": "sunny.kuo",
        "email": "sunny.kuo@mediatek.com",
        "time": "Wed Aug 18 10:32:48 2021 +0800"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Aug 18 13:09:19 2021 +0000"
      },
      "message": "sigchain: print ucontext in fatal error log\n\nBecause it\u0027s hard to debug when ucontext is optimized,\nto print ucontext in fatal error log.\n\ngdb log:\n #1  0xa98b52be in art::SignalChain::Handler (signo\u003d11, siginfo\u003d0xae4cec88, ucontext_raw\u003d\u003coptimized out\u003e)\n    at art/sigchainlib/sigchain.cc:408\n\nTest: trigger fatal error by sending signal 11 to a process\nChange-Id: I204c308e5d1d0b8d12ab15045a7426e64ccd8e2e\nBug: 197044435\n"
    },
    {
      "commit": "8d3d64f57da1cd501405d1e5588cdf18ac1894ee",
      "tree": "7daa104b4868bea797e80f83b901d89a00faace3",
      "parents": [
        "a0e10b1691aca250f390704c73b18810b89302e1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 29 15:46:48 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 17 19:50:05 2021 +0000"
      },
      "message": "Make run-test build scripts more deterministic\n\nUse soong_zip instead of system zip to make the build deterministic.\nThis is guaranteed to be same on all machines and removes timestamp.\n\nFix helper utility which generated java source code with functions\nin random order for some tests.\n\nThere is still some non-determinism left caused by the smali\ncompiler generating non-deterministic dex output files.\n\nBug: 147814778\nTest: test.py --host\nChange-Id: Ibd1187e7cda840b647d3f13ad158952f235716bf\n"
    },
    {
      "commit": "a0e10b1691aca250f390704c73b18810b89302e1",
      "tree": "fdfdadd710d2be165885cd4bf9f897d453072071",
      "parents": [
        "bbd13da29ec2712d7ad664f1a65baa6d1823f480"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Wed Aug 11 16:00:13 2021 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Tue Aug 17 13:17:04 2021 +0000"
      },
      "message": "Have counter pre-initialized in ParallelGC test\n\nBug: 94471075\nTest: testrunner.py --target --verbose --ndebug --gcstress --optimizing --debuggable -t 114-ParallelGC\nChange-Id: Id0b3640bc4e21caf187fd886d153e00761b9ba15\n"
    },
    {
      "commit": "bbd13da29ec2712d7ad664f1a65baa6d1823f480",
      "tree": "37acb592ae703bcd7bca79e8a688db8a2dcb7020",
      "parents": [
        "a21b58476a530d47532af28c0f909fb9a3aedcbf"
      ],
      "author": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Tue Aug 17 19:07:32 2021 +0900"
      },
      "committer": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Tue Aug 17 19:12:42 2021 +0900"
      },
      "message": "Read public.libraries-\u003ccompany\u003e.txt from product/etc/\n\nEven in the case of unbundled product partition, extending the public\nlibraries must follow the existing policy. Read\npublic.libraries-\u003ccompany\u003e.txt from the product partition instead of\npublic.libraries.txt in any cases.\n\nBug: 186055799\nTest: pm list libraries\n      atest libnativeloader_test\nChange-Id: I1c9fd182fa902cf750a9644bf9a3c1ffcfa01340\n"
    },
    {
      "commit": "a21b58476a530d47532af28c0f909fb9a3aedcbf",
      "tree": "6ec0af4828245affb1556ce8e5249e56d3f5ded9",
      "parents": [
        "fb3ad7201bf2d9154862e347e960df376ac04c3c"
      ],
      "author": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Tue Aug 10 14:05:49 2021 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 17 00:49:38 2021 +0000"
      },
      "message": "Define product public libraries\n\nWhen /product is unbundled from the /system, /product/etc/ may not\nhave \u0027public.libraries-\u003ccompanyname\u003e.txt\u0027 to extend public libraries.\nInstead, /product/etc/public.library.txt can provide public libraries\nfrom /product.\n\nBug: 186055799\nTest: atest libnativeloader_test\nChange-Id: I8994649826657f59ac1dac655205b9704a2c67c9\n"
    },
    {
      "commit": "fb3ad7201bf2d9154862e347e960df376ac04c3c",
      "tree": "5f341409b0ec998fb26049efc988b81f5e6a946b",
      "parents": [
        "e84ad2c045f3439b9e20b977d74c7e4e394417a2"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 16 16:53:17 2021 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 17 00:48:26 2021 +0000"
      },
      "message": "Revert \"Make ClassLinker::DumpForSigQuit exclude gc\"\n\nThis reverts commit 825e82972fe46fdb0419c42bd7df102df1989ff9.\n\nReason for revert: Not clear it fixed anything. See b/195261575 .\n\nChange-Id: I6fd0d10b5134037d2df399abbbaa3302454f0e4f\n"
    },
    {
      "commit": "e84ad2c045f3439b9e20b977d74c7e4e394417a2",
      "tree": "61a2e0602b2ee9b9f8a3e92b9bc7e8deb30d0784",
      "parents": [
        "3ba3edfee2592edeea4a4cf06336577178bf2b12"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Aug 16 03:19:18 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Aug 16 08:41:11 2021 +0000"
      },
      "message": "Fix OnDeviceSigningHostTest to correctly get mapped artifacts.\n\nWe use `pidof` to get the pid of a process, in order to get the mapped\nfiles of the process from `/proc/\u003cpid\u003e/maps`. However, `pidof` may\noutput multiple pids in some cases, separated by spaces, which leads to\nweird errors because the test cannot handle such output. After this\nchange, only the first pid is taken.\n\nBug: 189467174\nTest: atest odsign_e2e_tests\nChange-Id: I6e137819fa032611636f92fdd2b6c9faf58acd25\n"
    },
    {
      "commit": "3ba3edfee2592edeea4a4cf06336577178bf2b12",
      "tree": "e06356064d47310651e5f65f8449d3716aea05c4",
      "parents": [
        "70aa29e2d93ba66e71a8ff88c9210719efae1c31"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Aug 11 08:25:40 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 16 08:38:52 2021 +0000"
      },
      "message": "Add unit tests for odrefresh - step 1\n\n- Define `class OnDeviceRefresh` in the header file and expose some\npublic methods.\n- Changed the ordering of functions. (Function bodies are\nnot changed.)\n- Move static functions to the anonymous namespace, outside of the\nclass.\n- Cleanup \"static\" keywords inside the anonymous namespace.\n- Move the `main` function and related functions about argument parsing\nand usage help to a separate file `odrefresh_main.cc`.\n- Move `Concatenate` and `QuotePath` to separate files\n`odr_common.h`/`odr_common.cc`.\n\nBug: 196188549\nTest: m odrefresh\nTest: m odrefreshd\nTest: atest odsign_e2e_tests\nChange-Id: I0ae1cf34181ae2edf7fd2728ec90b842470d729e\n"
    },
    {
      "commit": "70aa29e2d93ba66e71a8ff88c9210719efae1c31",
      "tree": "f095ddc5ecc6f699422dbddce6e937047f407915",
      "parents": [
        "7de49d88a1fded45a20209b5335464dd84c3ea03"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 11 12:11:19 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 13 16:34:20 2021 +0000"
      },
      "message": "Do not acquire runtime_shutdown_lock_ in Abort()\n\nAbort can be called, particularly in OOM situations, when we already\nhold the lock. Abort() should minimize the locks it acquires.\n\nThis is intended to be a minimal, low-risk change. Generated code\nshould be essentially unchanged, except in Abort(). This does not\naddress the question of whether IsShuttingDown really needs to\nlock at all.\n\nTest: Build and boot AOSP.\nBug: 195884830\nChange-Id: I0ee4a7ca7348153436fec0fecc1d1f2ca1f7a30c\n"
    },
    {
      "commit": "7de49d88a1fded45a20209b5335464dd84c3ea03",
      "tree": "e70608fd9d970418cc74e5fd8bcba55959c1ac63",
      "parents": [
        "668daf892a2b81b1acc09c354d705774daa17958"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Jul 14 11:09:49 2021 +0800"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Aug 11 00:21:46 2021 +0000"
      },
      "message": "Update on-device AOT compilation to cover all cases.\n\nAfter the change, odrefresh can properly determine whether to do\ncompilation when:\n1. There is a mainline update (either a normal one or a samegrade one) that updates the ART module.\n2. There is a mainline update (either a normal one or a samegrade one) that updates a module other than ART.\n3. There is an OTA that updates a boot classpath jar.\n4. There is an OTA that updates a system server jar.\n5. There is no change since the last run.\n\nTest: manual - 1. Install a mainline module without changing its\ncontents.\n    2. Reboot the device.\n    3. See if system_server components are recompiled.\nTest: manual - 1. Do nothing and reboot the device.\n    2. See if nothing is recompiled.\nTest: atest odsign_e2e_tests\nTest: atest art_odrefresh_tests\nBug: 189467174\n\nChange-Id: I43dea5380fcd221d5d4e34753d64d46be4dbc27e\n"
    },
    {
      "commit": "668daf892a2b81b1acc09c354d705774daa17958",
      "tree": "42b291279d36ebefead5f0a2625d2b0e1ea81601",
      "parents": [
        "5503a8aef8019e536b9702326eccdc92e7be7644"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 10 15:42:10 2021 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Aug 10 19:22:14 2021 +0000"
      },
      "message": "Revert^2 \"Adjust test for compiler update.\"\n\n855cc35a2212d51de19d1daaefe6577223882fd6\n\nChange-Id: Ife32e570d5367f0237137f300d5ebf063a7555b3\n"
    },
    {
      "commit": "5503a8aef8019e536b9702326eccdc92e7be7644",
      "tree": "377cd41fc2ea30dd2f3eb50e4426808ad1ee626c",
      "parents": [
        "b09a983e8dab0477b2546ed56544d31f575c5d2a"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Aug 10 08:07:12 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Aug 10 11:46:45 2021 +0000"
      },
      "message": "odrefresh: Respect \"dalvik.vm.systemservercompilerfilter\".\n\nIf the property is set, we should use whatever specified in the\nproperty, rather than always using \"speed\".\n\nThis is brought up by bdc@. The change that merges into sc-dev is\nalready fixed. We need this fix in AOSP as well.\n\nBug: 195653499\nTest: adb shell setprop dalvik.vm.systemservercompilerfilter verify \u0026\u0026 adb shell odrefresh --force-compile\n    (Found \"/apex/com.android.art/bin/dex2oat64\n    --dex-file\u003d/system/framework/services.jar\n    ...\n    --compiler-filter\u003dverify\" in logcat)\nTest: atest odsign_e2e_tests\n\nChange-Id: Icb57ed5eb6b8976ecf6ac88bf8c278bbe144b450\n"
    },
    {
      "commit": "b09a983e8dab0477b2546ed56544d31f575c5d2a",
      "tree": "7fa0b67a5d8d03aa1205d9cfbc5edc96edda17ec",
      "parents": [
        "855cc35a2212d51de19d1daaefe6577223882fd6"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Aug 09 03:49:33 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Aug 10 05:34:48 2021 +0000"
      },
      "message": "odrefresh: Defaults to using \"speed\" for compiling system_server.\n\nMost device builds use the speed configuration for system_server preopt,\nunless \"dalvik.vm.systemservercompilerfilter\" is set to \"speed-profile\".\nodrefresh should not change this behavior.\n\nBug: 195653499\nTest: adb shell odrefresh --force-compile\n    (Found \"/apex/com.android.art/bin/dex2oat64\n    --dex-file\u003d/system/framework/services.jar\n    ...\n    --compiler-filter\u003dspeed\" in logcat)\nTest: adb shell setprop dalvik.vm.systemservercompilerfilter speed-profile \u0026\u0026 adb shell odrefresh --force-compile\n    (Found \"/apex/com.android.art/bin/dex2oat64\n    --dex-file\u003d/system/framework/services.jar\n    ...\n    --profile-file-fd\u003d...\n    --compiler-filter\u003dspeed-profile\" in logcat)\nTest: atest odsign_e2e_tests\n\nChange-Id: I85feeceef4c1410451765274bd02c634d7d8051f\n"
    },
    {
      "commit": "855cc35a2212d51de19d1daaefe6577223882fd6",
      "tree": "9f81ffa70d28a9021209bf508a052023e7495e2a",
      "parents": [
        "1f0a1547d31aaa44e6667dbd0ada228f4b2e2d8a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 20:59:59 2021 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 20:59:59 2021 +0000"
      },
      "message": "Revert \"Adjust test for compiler update.\"\n\nRevert \"Switch to clang r428724 13.0.1.\"\n\nRevert submission 1743633-switch-to-clang-r428724\n\nReason for revert: fix build\nReverted Changes:\nI824f3bc1c:Update bazel\u0027s clang version to clang-r428724\nI6c4c26267:Adjust test for compiler update.\nI94ab1f2dc:Switch to clang r428724 13.0.1.\n\nChange-Id: Ic9b7921f530566a6ebe7e3d4304c2242ffdfecc1\n"
    },
    {
      "commit": "1f0a1547d31aaa44e6667dbd0ada228f4b2e2d8a",
      "tree": "6d8ef6f4e434690d9164e11f88f4bfeabe00f5c5",
      "parents": [
        "f955425d11ed4b8f6dc02530f0f5ab69edecd8d2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jun 29 13:59:51 2021 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sun Aug 08 18:20:19 2021 +0000"
      },
      "message": "Adjust test for compiler update.\n\nBug: 192012848\nTest: run test-art-host-gtest-art_compiler_host_tests\nChange-Id: I6c4c26267c3bcfafc22c391f99cdadcde473445e\n"
    },
    {
      "commit": "f955425d11ed4b8f6dc02530f0f5ab69edecd8d2",
      "tree": "9f81ffa70d28a9021209bf508a052023e7495e2a",
      "parents": [
        "0c3cc6350749a441fd54f8f3f67b7c69775000c8"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Aug 07 19:44:20 2021 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Aug 07 19:44:20 2021 +0000"
      },
      "message": "Revert \"Handle suspend requests in getReferent()\"\n\nThis reverts commit 0c3cc6350749a441fd54f8f3f67b7c69775000c8.\n\nReason for revert: Seems to break tests, e.g. https://ci.chromium.org/ui/p/art/builders/ci/host-x86-cms/6824/overview\n\nChange-Id: Id75641d28be218055eca07c99ab2e1bfd579fe71\n"
    },
    {
      "commit": "0c3cc6350749a441fd54f8f3f67b7c69775000c8",
      "tree": "b1269dfa3f20f2abee25a880df1ad36884ff3f56",
      "parents": [
        "825e82972fe46fdb0419c42bd7df102df1989ff9"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 05 18:30:08 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Aug 07 15:16:49 2021 +0000"
      },
      "message": "Handle suspend requests in getReferent()\n\nWhen waiting in getReferent or the like, use a TimedWait, so we\ncan occasionally check for suspend requests, thus avoiding deadlocks\nthat can arise from blocking indefinitely in a runnable state.\n\nThis is not particularly clean, and may introduce short delays\nwhen we would otherwise deadlock. It\u0027s also a bit risky because\nwe are now releasing the mutator lock in code that previously didn\u0027t.\n\nThis is a hopefully more correct replacement for aosp/1784003, which\noverlooked some of the complications here.\n\nThis does not handle a similar problem in the JNI weak reference code.\nEach additional use context adds risk here, due to the mutator\nlock release.\n\nBug: 195336624\nBug: 195664026\nTest: Build and boot AOSP with much shorter timeouts.\nTest: Confirm that the timeout code is invoked.\nChange-Id: I0ffb2ffd105bed9dcb8664f92b17cfbcf756a6e0\n"
    },
    {
      "commit": "825e82972fe46fdb0419c42bd7df102df1989ff9",
      "tree": "9f81ffa70d28a9021209bf508a052023e7495e2a",
      "parents": [
        "2d2a27fe91e0a5bb2a047b472ef8d5de9c5a6c73"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 02 17:12:29 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 07 01:03:51 2021 +0000"
      },
      "message": "Make ClassLinker::DumpForSigQuit exclude gc\n\nOtherwise we can get into a deadlock because we hold a critical lock\nwhile waiting for weak reference access, thus potentially preventing\nother threads from suspending properly to reenable weak reference\naccess.\n\nBug: 195261575\nTest: TreeHugger\nChange-Id: Ideb6199f597c4e06741c79bb2812661d88a42669\n"
    },
    {
      "commit": "2d2a27fe91e0a5bb2a047b472ef8d5de9c5a6c73",
      "tree": "dfa2139bf0b1b1efefd05244720cfe8f8305b8a7",
      "parents": [
        "1d9d3587dafb7078082b4d4058eea753c13ef94f"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 04 22:58:32 2021 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 04 22:58:32 2021 +0000"
      },
      "message": "Revert \"Don\u0027t block while runnable in getReferent()\"\n\nThis reverts commit 1d9d3587dafb7078082b4d4058eea753c13ef94f.\n\nReason for revert: Likely cause of build failures like https://android-build.googleplex.com/builds/submitted/7611067/art-jit/latest/logs\n\nChange-Id: I008de0d4b3976b8380935cd9a389c77e3b396274\n"
    },
    {
      "commit": "1d9d3587dafb7078082b4d4058eea753c13ef94f",
      "tree": "a131a7f29aa142b9d472e034143a6c7c4ad373da",
      "parents": [
        "0e8585342b1b26a0ec33421f9d4ab16cb9851ce4"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 03 17:24:31 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 04 15:18:34 2021 +0000"
      },
      "message": "Don\u0027t block while runnable in getReferent()\n\nChange state before waiting on the GC, so that we can safely be\nsuspended, thus avoiding surprisingly obscure deadlocks.\n\nBug: 195336624\nTest: Treehugger\nChange-Id: I7c7dff8030be962195b7521aac320e90d81defd9\n"
    },
    {
      "commit": "0e8585342b1b26a0ec33421f9d4ab16cb9851ce4",
      "tree": "dfa2139bf0b1b1efefd05244720cfe8f8305b8a7",
      "parents": [
        "18bea3d9059f9dfe4a339e1b03a5755ec147dbee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Aug 02 21:16:05 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Aug 03 15:06:19 2021 +0100"
      },
      "message": "ART Apex: prefer \"first\" to \"prefer32\" multilib option for tools\n\nThis makes the tools in a 32/64-bit APEX into 64-bit binaries when\npreviously they were 32-bit.\n\nThis change is to support 64-bit only devices. We currently build two\nflavors of the ART APEX: a 32-bit only variant and a combined\n32/64-bit variant. Devices using latter support 64-bit.\n\nThe size impact on the uncompressed APEXes is:\n\n+------------+-----------------+-----------------+-----------------+\n| ISA Family | Old size, bytes | New size, bytes |     Change      |\n+------------+-----------------+-----------------+-----------------+\n|     Arm    |    58,212,352   |   58,339,328    | 126,976 (+0.2%) |\n|    Intel   |    72,073,216   |   72,073,216    |       0 (+0.0%) |\n+------------+-----------------+-----------------+-----------------+\n\nBug: 194800665\nTest: art/build/apex/runtests.sh\nTest: odsign_e2e_tests\nChange-Id: If23ea3bc3f14c948c032bb3726a125dfdd8069f4\n"
    },
    {
      "commit": "18bea3d9059f9dfe4a339e1b03a5755ec147dbee",
      "tree": "6937aa71f1d80f029dcd90107b87b052d8597a3a",
      "parents": [
        "58bfbad8fd812aeec7da141bbb4c8c8558763814"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 02 12:26:15 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 02 12:26:15 2021 +0100"
      },
      "message": "Document standalone ART gtests on device in `test/README.atest.md`.\n\nTest: Render `README.chroot.md` as HTML and check the output manually\nBug: 147820692\nChange-Id: I66831344e502c2df92d40ee74406c0ce5f93bbc6\n"
    },
    {
      "commit": "58bfbad8fd812aeec7da141bbb4c8c8558763814",
      "tree": "104df89de9b9f549cdbafb730ffa02fa9355995a",
      "parents": [
        "cbd809bc76184d274a5999f44669850877433f3c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jul 29 10:22:29 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 30 15:44:16 2021 +0000"
      },
      "message": "Relax 053-wait-some sucess criteria\n\nDrop constraint on total extra delay. Shorten maximum wait time.\n\nBut then only only require success in 2 out of 3 runs.\n\nSwitch timing to use nanoTime() to get a monotonic clock. This might\nhave contributed to a few of the observed failures.\n\nBug: 175435088\n\nTest: Prun-test --host 053-wait-some\nTest: Retest with sleepy.wait(delay * 3/2); on line 66.\nTest: Retest with timing set to true in code.\nChange-Id: Ic8e392340ba1d70782f2a5303bfebf1d7251a86b\n"
    },
    {
      "commit": "cbd809bc76184d274a5999f44669850877433f3c",
      "tree": "e2a27f8ccb84f8f048bc071ebeefe2ac01b31577",
      "parents": [
        "de54ddda0d5b2cd3e396eb4e42ef04bb3e667609"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Wed Jul 21 09:28:44 2021 -0400"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 29 21:05:22 2021 +0000"
      },
      "message": "Correct enum comparison to reenable -Wenum-compare\n\nTest: m \u0026\u0026 TH\nChange-Id: I3130b46feba9611806e3fc4f1f509dca6c51ac5c\n"
    },
    {
      "commit": "de54ddda0d5b2cd3e396eb4e42ef04bb3e667609",
      "tree": "c66fd9615deff45c0e1693e83feb8618ffd21815",
      "parents": [
        "7d398b070dcbe3d79718b04882aa3989717f6dba"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 28 20:02:04 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 28 20:17:28 2021 +0100"
      },
      "message": "Add support for gtest options to `tools/run-gtests.sh`.\n\nHave `tools/run-gtests.sh` accept gtest options after `--` on the\ncommand line, and pass them verbatim to each executed gtest\nbinary.\n\nAlso document the use of gtest options with `tools/run-gtests.sh`\nin `test/README.chroot.md`.\n\nTest: art/tools/run-gtests.sh -- --gtest_list_tests\nTest: art/tools/run-gtests.sh \\\n        /apex/com.android.art/bin/art/arm64/art_cmdline_tests \\\n        -- --gtest_list_tests\nTest: Render `README.chroot.md` as HTML and check the output manually\nBug: 34729697\nChange-Id: If41181666eb52750444b1b40dfab0629f802b7b5\n"
    },
    {
      "commit": "7d398b070dcbe3d79718b04882aa3989717f6dba",
      "tree": "da1d1dccaf23c7c3d84696c427ed63d09cf15b7c",
      "parents": [
        "dc00c3aef3561f97ac0ffda60aee1254c6d5fb74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 16 19:27:45 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 28 11:21:28 2021 +0000"
      },
      "message": "Add OkHttp tests to the generated ART MTS definition.\n\nAdd `MtsLibcoreOkHttpTestCases` to the generated ART MTS definition.\n\nAdd this test module to the existing ART MTS shard 02.\n\nTest: m mts \u0026\u0026 mts-tradefed run commandAndExit mts-art\nTest: m mts \u0026\u0026 mts-tradefed run commandAndExit mts-art-shard-02\nBug: 167385698\nChange-Id: I7c0abf96a9e2a5b9bab0add638a3b51f51083dd4\n"
    },
    {
      "commit": "dc00c3aef3561f97ac0ffda60aee1254c6d5fb74",
      "tree": "b676f79954a3347de1447308962e35717d1b1e41",
      "parents": [
        "ce9b902a161b86eb2d5ef9fe4442305e25828d0a"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jul 26 18:16:30 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jul 27 20:27:48 2021 +0000"
      },
      "message": "Retry more carefully\n\nWhen we notice that notifications ran too quickly, start over from\nthe beginning. Just retrying the notiofications was ineffective,\npresumably because we already triggered a GC. but it somehow\ncompleted before we looked for blocking behavior.\n\nTest: Treehugger, some manual testing with code changes.\nBug: 190148586\nChange-Id: Ic4689165c5f37535b6ba0e05f03584cdc1d04c40\n"
    },
    {
      "commit": "ce9b902a161b86eb2d5ef9fe4442305e25828d0a",
      "tree": "3108d6315b779816b076b220870748631235e2ea",
      "parents": [
        "a8f858e4eddeede8c465cc5b9fb40733e4649aed"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jul 21 10:44:06 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 27 16:56:08 2021 +0000"
      },
      "message": "Reland: Support pass BCP art/vdex/oat files by FD\n\nThe original implementation in odrefresh generated inconsistent number\nof files between jars and other files. The code is reworked.\n\nOriginal description:\n\nThis is currently used by odrefresh.\n\nMain runtime changes are:\n\n1. When reading the image header, also tries to read from the FD if\n   provided.\n\n2. Initialize the art/vdex/odex FDs in the boot image chunk if provided.\n   This allows them to be opened (in case if the file is not accessible\n   by path) in LoadComponents.\n\n3. OpenBootDexFiles: accept BCP JARs passed as FD, in case if the file\n   is not accessible by path.\n\n4. The new FDs are passed from new runtime args,\n   -Xbootclasspath{art,vdex,oat}fds.\n\nIt is used in odrefresh to pass the previous output of BCP extensions to\nbe used in the next phase, system server compilation.\n\nBug: 193720426\nTest: odrefresh --use-compilation-os\u003d10 --force-compile # exit 80\n      odrefresh --verify # exit 0 (was 79 previosly)\nTest: Verify the checksum of output files are the same, with\n      --use-compilation-os or not, i.e. regardless where the compilation\n      happens\nTest: mma in art/\nTest: odsign_e2e_tests\nChange-Id: Ie3ae48c7d70a2779cfbd80b307199a0f327c895c\n"
    },
    {
      "commit": "a8f858e4eddeede8c465cc5b9fb40733e4649aed",
      "tree": "871974880c9348440ee5a10c3776df5579f45688",
      "parents": [
        "4aebd580c9c9de348b8fefed6353b86621cceb53"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Jul 27 05:41:31 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Jul 27 07:34:20 2021 +0000"
      },
      "message": "Verify that artifacts can still be loaded after a reboot.\n\nBefore this change, odsign_e2e_tests only verified that artifacts are loaded right after being generated. This change increases the test coverage.\n\nTest: atest odsign_e2e_tests\nBug: 194754733\nChange-Id: Icf7e630bbe31eddf2b442bb84bdff8d06943d1fc\n"
    },
    {
      "commit": "4aebd580c9c9de348b8fefed6353b86621cceb53",
      "tree": "47f07ff4173534c92ff9673d6d423c4df13bbe6e",
      "parents": [
        "d7a4da1f357e089c5d150559d8d2f2ddb7c4958a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 23 15:27:31 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 23 16:09:23 2021 +0000"
      },
      "message": "Add some null checks in case of OOME.\n\nTest: test.py\nBug: 194471075\nChange-Id: Ib02845636af4d3944a96f001e5ad728a94832285\n"
    },
    {
      "commit": "d7a4da1f357e089c5d150559d8d2f2ddb7c4958a",
      "tree": "bde88500eac9eda86031cfe8536241dfc79e12d2",
      "parents": [
        "2cb2527d4136f681b8e79352c546e65431ceb10c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 23 15:05:49 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 23 14:16:27 2021 +0000"
      },
      "message": "Revert \"Support pass BCP art/vdex/oat files by FD\"\n\nThis reverts commit b1adfc2a0570f52d74b8a4acdd578efc1790995b.\n\nReason: reports from Realtime Stability Insights (RTSI) infra.\n\nBug: 193720426\nFix: 194481664\nFix: 194475273\nFix: 194478073\nTest: TH\nChange-Id: I421d0b4a613de5ac8fb2830fa27206edb5428374\n"
    },
    {
      "commit": "2cb2527d4136f681b8e79352c546e65431ceb10c",
      "tree": "2e6429eff103ac8006f564238e381f4ec6e0a841",
      "parents": [
        "f7e4c3d58d3ce7f38e4591acb9928513928c39c4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 15 14:24:29 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 23 13:32:32 2021 +0000"
      },
      "message": "verifier: Remove support for precise constants and RegisterTrackingMode.\n\nThese features were used when we were creating GC maps and\ndeoptimization information with the quick compiler. Quick compiler has\nbeen removed, so we can remove these features.\n\nTest: test.py\nChange-Id: I633a7ada761b280b90e2d7c53cd5fbf2ae1d701d\n"
    },
    {
      "commit": "f7e4c3d58d3ce7f38e4591acb9928513928c39c4",
      "tree": "8e37537c183681b641fb099501330fbd958f8f1d",
      "parents": [
        "310b4e26593f6c1b89659d00275b55fa1a3c07b7"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jul 23 00:17:36 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 23 12:03:59 2021 +0000"
      },
      "message": "Set MODULE_BUILD_FROM_SOURCE to disable module prebuilts when building linux_bionic targets.\n\nThey can otherwise cause duplicate install rules in Soong in\n--skip-make mode.\n\nCherry-picked from http://ag/15361752.\n\nTest: env DIST_DIR\u003dout/linux_bionic ./art/tools/dist_linux_bionic.sh \\\n        -j40 com.android.art.host com.android.support.apexer\nBug: 194171329\nChange-Id: I91d31e258ddad255344fbde111ed8b1ac1423921\nMerged-In: I91d31e258ddad255344fbde111ed8b1ac1423921\n"
    },
    {
      "commit": "310b4e26593f6c1b89659d00275b55fa1a3c07b7",
      "tree": "d4527871a5f6a86f6ecee96177f21c63397e67ba",
      "parents": [
        "a0dd228837fbbacb3d29445bdf027649567f94fb"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 21 16:02:06 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 23 11:56:43 2021 +0000"
      },
      "message": "x86_64: Implement VarHandle.getAndBitwise{And,Or,Xor} for fields.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                              before   after\n  -----------------------------------------------------\n  GetAndBitwiseOrStaticFieldInt          2.346    0.012\n  GetAndBitwiseOrFieldInt                2.615    0.010\n  GetAndBitwiseOrAcquireStaticFieldInt   2.340    0.008\n  GetAndBitwiseOrAcquireFieldInt         2.616    0.008\n  GetAndBitwiseOrReleaseStaticFieldInt   2.349    0.008\n  GetAndBitwiseOrReleaseFieldInt         2.614    0.008\n  GetAndBitwiseXorStaticFieldInt         2.336    0.010\n  GetAndBitwiseXorFieldInt               2.611    0.010\n  GetAndBitwiseXorAcquireStaticFieldInt  2.332    0.008\n  GetAndBitwiseXorAcquireFieldInt        2.613    0.008\n  GetAndBitwiseXorReleaseStaticFieldInt  2.335    0.008\n  GetAndBitwiseXorReleaseFieldInt        2.617    0.008\n  GetAndBitwiseAndStaticFieldInt         2.341    0.010\n  GetAndBitwiseAndFieldInt               2.619    0.010\n  GetAndBitwiseAndAcquireStaticFieldInt  2.345    0.008\n  GetAndBitwiseAndAcquireFieldInt        2.610    0.009\n  GetAndBitwiseAndReleaseStaticFieldInt  2.343    0.008\n  GetAndBitwiseAndReleaseFieldInt        2.616    0.008\n\nBug: 71781600\nTest: lunch aosp_cf_x86_64_phone-userdebug \\\n  \u0026\u0026 art/test.py --host -r -t 712-varhandle-invocations --64\nTest: Repeat with ART_USE_READ_BARRIER\u003dfalse.\nTest: Repeat with ART_HEAP_POISONING\u003dtrue.\nChange-Id: Ied3ae34aaad24e1b2cd8237fed4ac64aa9ae10ae\n"
    },
    {
      "commit": "a0dd228837fbbacb3d29445bdf027649567f94fb",
      "tree": "f7f8c1c4fce0a752b27734c21b80ce38391fac36",
      "parents": [
        "017aae426873d57e260d5ae52fd5ce2ed2bddb1c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 22 21:09:46 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 23 11:40:07 2021 +0000"
      },
      "message": "odsign_e2e_tests: do not assume time monotonicity across reboots\n\nBug: 194365586\nTest: atest --iterations 10 com.android.tests.odsign.OnDeviceSigningHostTest\nChange-Id: I824da7fb9bfc0c455c852f99d2564e89728170ea\n"
    },
    {
      "commit": "017aae426873d57e260d5ae52fd5ce2ed2bddb1c",
      "tree": "6129e7bc94b4a63231e6e99ccb57a2b583f1cc3f",
      "parents": [
        "b1adfc2a0570f52d74b8a4acdd578efc1790995b"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jul 20 17:56:01 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 23 10:06:13 2021 +0000"
      },
      "message": "x86_64: Implement VarHandle.getAndAdd for fields.\n\nThe implementation is based on XADD instruction, so it cannot be reused\nfor other getAnd* methods.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                           before   after\n  --------------------------------------------------\n  GetAndAddStaticFieldInt             2.338    0.012\n  GetAndAddFieldInt                   2.614    0.012\n  GetAndAddStaticFieldFloat           2.338    0.010\n  GetAndAddFieldFloat                 2.612    0.010\n  GetAndAddAcquireStaticFieldInt      2.337    0.007\n  GetAndAddAcquireFieldInt            2.617    0.007\n  GetAndAddAcquireStaticFieldFloat    2.337    0.010\n  GetAndAddAcquireFieldFloat          2.610    0.010\n  GetAndAddReleaseStaticFieldInt      2.336    0.007\n  GetAndAddReleaseFieldInt            2.615    0.007\n  GetAndAddReleaseStaticFieldFloat    2.334    0.010\n  GetAndAddReleaseFieldFloat          2.613    0.010\n\nBug: 71781600\nTest: lunch aosp_cf_x86_64_phone-userdebug \\\n  \u0026\u0026 art/test.py --host -r -t 712-varhandle-invocations --64\nTest: Repeat with ART_USE_READ_BARRIER\u003dfalse.\nTest: Repeat with ART_HEAP_POISONING\u003dtrue.\nChange-Id: If41fd01b7e444a7157478999640f45d64bbf17f1\n"
    },
    {
      "commit": "b1adfc2a0570f52d74b8a4acdd578efc1790995b",
      "tree": "c5058390901f2abbb0e281d8403be2b8db02c337",
      "parents": [
        "71f763399e95676d665e071623bccb714acf88b4"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jul 21 10:44:06 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 23 01:47:27 2021 +0000"
      },
      "message": "Support pass BCP art/vdex/oat files by FD\n\nThis is currently used by odrefresh.\n\nMain runtime changes are:\n\n1. When reading the image header, also tries to read from the FD if\n   provided.\n\n2. Initialize the art/vdex/odex FDs in the boot image chunk if provided.\n   This allows them to be opened (in case if the file is not accessible\n   by path) in LoadComponents.\n\n3. OpenBootDexFiles: accept BCP JARs passed as FD, in case if the file\n   is not accessible by path.\n\n4. The new FDs are passed from new runtime args,\n   -Xbootclasspath{art,vdex,oat}fds.\n\nIt is used in odrefresh to pass the previous output of BCP extensions to\nbe used in the next phase, system server compilation.\n\nBug: 193720426\nTest: odrefresh --use-compilation-os\u003d10 --force-compile # exit 80\n      odrefresh --verify # exit 0 (was 79 previosly)\nTest: Verify the checksum of output files are the same, with\n      --use-compilation-os or not, i.e. regardless where the compilation\n      happens\nTest: mma in art/\nChange-Id: I209085f047c42823ff20415804f65a9b32378b40\n"
    },
    {
      "commit": "71f763399e95676d665e071623bccb714acf88b4",
      "tree": "442dbbe8745d5269cf5ed13307700ba41d0c8866",
      "parents": [
        "c9acd230431acf786b5597cbbc2da57e88eb0435"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 20 11:57:48 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 23 00:07:00 2021 +0000"
      },
      "message": "Use config.BuildOS instead of android.BuildOs\n\nandroid.BuildOs is being replaced with config.BuildOS so that it\ncan vary based on the product configuration.\n\nBug: 190084016\nTest: m checkbuild\nChange-Id: Ic660bd9a34faf323a1458bb88f07b1bc8db7d460\n"
    },
    {
      "commit": "c9acd230431acf786b5597cbbc2da57e88eb0435",
      "tree": "383869b7275bbd2b16b7481f507c6ce1e6bc679d",
      "parents": [
        "09bfdf1700feeedf85c4a53502d3c14b4d3f41fd"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Jul 21 17:51:32 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jul 22 21:15:14 2021 +0000"
      },
      "message": "Delete almost correct CHECK\n\nThe bytes_allocated + freed_bytes \u003e\u003d bytes_allocated_before_gc\nCHECK could fail if we expand space use as a result of copying,\nand perhaps for other reasons. Delete it, and have the later code\ndeal with the fact that it may not hold.\n\nTest: Build and boot AOSP.\nBug: 194263989\nChange-Id: I9188a7cd13661c16b1b69a90d1f03d60548db217\n"
    },
    {
      "commit": "09bfdf1700feeedf85c4a53502d3c14b4d3f41fd",
      "tree": "bf6c232234d4c41697a78868e51b7dc07eabb011",
      "parents": [
        "1b621225a8869f930d530e4855157a444971aca1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 19 12:17:20 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 22 14:09:53 2021 +0000"
      },
      "message": "Rewrite UTF-8 encoding.\n\nCreate a templated implementation to serve all the UTF-8\nrelated encodings. Use it for `CharsetUtils.toUtf8Bytes()`\nand the JNI `GetStringUTFChars()`. Do not use it yet for\nthe internal `ConvertUtf16ToModifiedUtf8()` which shall be\nswitched to actual Modified UTF-8 in a separate change.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: atest CtsLibcoreTestCases:libcore.java.lang.StringTest\nBug: 192935764\nChange-Id: Id3ec3a0bc2638becdf4181d9c2b6794c91a75314\n"
    },
    {
      "commit": "1b621225a8869f930d530e4855157a444971aca1",
      "tree": "9885c16405db986e26419e4d0e001ab0c5fd48b1",
      "parents": [
        "fc42ce1a2b013059b7868ffc69d35fade6c5b743"
      ],
      "author": {
        "name": "Stelios Ioannou",
        "email": "stelios.ioannou@linaro.org",
        "time": "Thu Jun 17 14:15:45 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 22 13:07:21 2021 +0000"
      },
      "message": "ART: Implements a test option of forced generation of .cfg\n\nThis patch introduces the option to dump .cfg for any type of test. If\nthe \"--dump-cfg \u003cpath/graph.cfg\u003e option\" is present, then it generates\na .cfg following the same logic used for the \"checker\" tests but\nforcing it for any type of test. This option works for both host and\ntarget.\n\nBefore the artifacts are wiped, the generated .cfg file is copied to\nthe specified host path.\n\nNote that it will only dump a .cfg if the compiler type is set to\n\"optimizing\". Otherwise, it will throw a warning.\n\nTest: ./art/test/run-test  --host --simulate-arm64  --optimizing \\\n--dump-cfg \u003cpath\u003e/graph.cfg  \u003ctest\u003e\n\nChange-Id: I034b13b401bd1dee8d871297da8d09e807a35fd1\n"
    },
    {
      "commit": "fc42ce1a2b013059b7868ffc69d35fade6c5b743",
      "tree": "c82efa8fa290af716eb02e1389379c724ed04ab5",
      "parents": [
        "a6f8a6a7a1e4e639b393261fc46abe046cd59b63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 21 15:51:35 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 22 09:45:56 2021 +0000"
      },
      "message": "Fix `GetDataTypeFromShorty()` for inlined VarHandle intrinsics.\n\nTest: testrunner.py --host --optimizing --jit\nBug: 188889082\nChange-Id: Ide335dc408f5bd2c9256d4cac5ba66d2d390f69b\n"
    },
    {
      "commit": "a6f8a6a7a1e4e639b393261fc46abe046cd59b63",
      "tree": "910fbc17a780b894cb116aee0200369941469183",
      "parents": [
        "244f22bf574f8c1656e668e77e4636f442d1a214"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 21 12:29:04 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 22 09:35:51 2021 +0000"
      },
      "message": "Initialize intrinsics for UnstartedRuntimeTest.\n\nThis is needed for implementing Java Atomic* classes\nwith `VarHandle` as two of the unstarted runtime tests\nshall then exercise code paths with invoke-polymorphic\nwhere we need to know the intrinsic for dispatch.\n\nTest: m test-art-host-gtest\nBug: 188889082\nChange-Id: Idf01066af68edb2db0be8954a4440d53e95ecbc8\n"
    },
    {
      "commit": "244f22bf574f8c1656e668e77e4636f442d1a214",
      "tree": "0fe0cc017fc2ae948d412d5533596544cbea7914",
      "parents": [
        "4a889b7f1e58368f0ffd795eaa24f2f493ccab8d"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jul 20 16:56:30 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 21 17:12:20 2021 +0000"
      },
      "message": "x86_64: Add LockXadd* helper function and tests for it.\n\nA separate function is need for 16-bit variant `lock xaddw` because the\nLOCK prefix should go after the operand size override prefix to match\nthe order of prefixes emitted by the reference implementation.\n\nBug: 65872996\nTest: m test-art-host-gtest  # new test cases for LOCK XADD\nChange-Id: I29946c75c76966cb9c6425b2a22eae3664ce3c00\n"
    },
    {
      "commit": "4a889b7f1e58368f0ffd795eaa24f2f493ccab8d",
      "tree": "6449e59690e4219f3b3c1beba3631ecb586a584d",
      "parents": [
        "5d446a37192427b4d24ca9add5d8e2409f665c4d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 21 16:20:54 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 21 16:21:35 2021 +0000"
      },
      "message": "Revert \"Compile time null checks for VarHandle intrinsics.\"\n\nThis reverts commit b3a7a6a72d7b91ee5507bd7314a3aae3948e6f29.\n\nReason for revert: Breaks ART baseline compiler.\n\nBug: 191765508\nChange-Id: Ida63660e0149c4847f015950f95282e61add7204\n"
    },
    {
      "commit": "5d446a37192427b4d24ca9add5d8e2409f665c4d",
      "tree": "6cf0445966ba613542db4d5fb2ed02faa05bedb5",
      "parents": [
        "b3a7a6a72d7b91ee5507bd7314a3aae3948e6f29"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jul 20 15:51:48 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 21 15:23:52 2021 +0000"
      },
      "message": "x86_64: Add XADD instruction and tests for it.\n\nBug: 65872996\nTest: m test-art-host-gtest  # new test cases for XADD\nChange-Id: Idaa5f40dab106e7f48bfd8adeee629bcdaa8e33a\n"
    },
    {
      "commit": "b3a7a6a72d7b91ee5507bd7314a3aae3948e6f29",
      "tree": "f65ecb447173e067fd5bd9437c19380b0d72bf04",
      "parents": [
        "c4597765f2d7496e428c0b0dc1b26ffb71c61093"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 20 15:02:33 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 21 12:57:37 2021 +0000"
      },
      "message": "Compile time null checks for VarHandle intrinsics.\n\nCreate a `VarHandleOptimizations` helper class holding the\noptimization flags for VarHandle intrinsics.\n\nAdd a flag to avoid emitting the intrinsic implementation\nand move shared checks previously duplicated in intrinsic\ncodegens helpers `HasVarHandleIntrinsicImplementation()` to\nthe instruction simplifier. Individual intrinsic codegens\nperform additional checks as needed.\n\nAdd the first optimization flag to avoid null check on the\nholder object if it cannot be null. And do not emit the\nintrinsic implementation if the holder object is null.\n\nTest: testrunner.py --host --optimizing\nTest: testrunner.py --target --optimizing\nBug: 191765508\nChange-Id: I53b1b57c327f02a9913f22885c1ce663cd9c3d44\n"
    },
    {
      "commit": "c4597765f2d7496e428c0b0dc1b26ffb71c61093",
      "tree": "698f1308c89b6aa3fa6c47ea9645e43d36d37946",
      "parents": [
        "e501434b98c740969607e400678a43a8f3c79942"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 10 14:08:26 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 20 18:46:04 2021 +0000"
      },
      "message": "Unhide VarHandle methods\n\nWith compiler intrinsics support for a significant fraction of the\nAPI, these can be unhidden.\n\nBug: 65872996\nBug: 191980162\nTest: m\nChange-Id: I30abc13f89c969ceae6f68c49280c7bca0d33f81\n"
    },
    {
      "commit": "e501434b98c740969607e400678a43a8f3c79942",
      "tree": "05c85246b6e125f49cdb97a46119adfaf6a0a339",
      "parents": [
        "81c76d8dac3f4c4d50cad21a0b94a155908bc7d1"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 19 18:21:53 2021 +0000"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jul 20 16:39:15 2021 +0000"
      },
      "message": "dt_fd_forward: fix uses of uninit values\n\n`NetworkToHost(x)` where `x` is uninitialized (or isn\u0027t fully written\nwith bytes) angers our static analyzer, and may be easy to accidentally\nuse going forward. If we rephrase `HandleResult` to instead take a\ncallable type that produces a T, we can sidestep all of this.\n\nCaught by the static analyzer:\n\u003e art/dt_fd_forward/dt_fd_forward.cc:554:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\u003e art/dt_fd_forward/dt_fd_forward.cc:563:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\u003e art/dt_fd_forward/dt_fd_forward.cc:572:30: warning: 1st function call\nargument is an uninitialized value [clang-analyzer-core.CallAndMessage]\n\nBug: None\nTest: TreeHugger, `WITH_TIDY\u003d1 CLANG_ANALYZER_CHECKS\u003d1 mma`\n\nChange-Id: Id759bd36085bdd34399b64b08363b4682746fdfa\n"
    },
    {
      "commit": "81c76d8dac3f4c4d50cad21a0b94a155908bc7d1",
      "tree": "93196a264a2e52031ccf419adfe54acf57db36e3",
      "parents": [
        "edc005e396947fb4fa681c4a0be7beba66354239"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 16 10:48:15 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 20 08:46:12 2021 +0000"
      },
      "message": "Add BouncyCastle tests to the generated ART MTS definition.\n\nAdd `CtsLibcoreWycheproofBCTestCases` to the generated ART MTS\ndefinition.\n\nAdd this test module to the existing ART MTS shard 02.\n\nTest: m mts \u0026\u0026 mts-tradefed run commandAndExit mts-art\nTest: m mts \u0026\u0026 mts-tradefed run commandAndExit mts-art-shard-02\nBug: 167385698\nChange-Id: Icf2a43b3bf1a765d420eeebf7433b90eb4424a55\n"
    },
    {
      "commit": "edc005e396947fb4fa681c4a0be7beba66354239",
      "tree": "861321ca5332baea1ea2d1c974a90496bd48ad7d",
      "parents": [
        "91d364965955265776848b190b066c53e2dd5f6e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 16 10:22:28 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 19 14:49:10 2021 +0000"
      },
      "message": "Rewrite JNI NewStringUTF().\n\nFor historical reasons, NewStringUTF() accepts 4-byte UTF-8\nsequences which are not valid Modified UTF-8. This can be\nconsidered an extension of the JNI specification.\n\nRewrite the function to deal with the decoding explicitly,\nso that we can later avoid dealing with the 4-byte sequences\nin internal ART routines intended for Modified UTF-8.\nNote that the DexFileVerifier rejects them in dex files.\n\nChange the decoding to accept improperly encoded ASCII\ncharacters as two-byte or three-byte sequences.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 192935764\nChange-Id: I3f91da990110e419c78138ce997123277bf3aaba\n"
    },
    {
      "commit": "91d364965955265776848b190b066c53e2dd5f6e",
      "tree": "1b1b2b7e5323f7f3176149d1cc4f9ed4ac591416",
      "parents": [
        "4b0ceb655f86d6be90be574349bdc55d24e5560c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 19 11:59:42 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 19 14:48:55 2021 +0000"
      },
      "message": "Fix trailing surrogate validation.\n\nThe macro `U16_IS_SURROGATE_LEAD()` assumes that the input\nis a surrogate without checking that assumption. Use the\n`U16_IS_TRAIL()` macro instead to correctly validate the\ntrailing surrogate in `CharsetUtils.toUtf8Bytes()`.\n\nTest: atest CtsLibcoreTestCases:libcore.java.lang.StringTest\nBug: 193891113\nChange-Id: Ib70d5a5b42c885ede3bf0e3bc087383c979f1f60\n"
    },
    {
      "commit": "4b0ceb655f86d6be90be574349bdc55d24e5560c",
      "tree": "062f296ec594a4bf075aaac19c07cfc9cb2fd86e",
      "parents": [
        "8f21748bf127012947ed48c40948df3f2d9c85ef"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jul 13 12:16:02 2021 +0100"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 16 17:53:20 2021 +0100"
      },
      "message": "x86_64: Implement VarHandle.getAndSet for fields.\n\nThe implementation is based on XCHG instruction, so it cannot be reused\nfor other getAnd* methods.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                           before   after\n  --------------------------------------------------\n  GetAndSetStaticFieldInt             2.449    0.018\n  GetAndSetStaticFieldString          2.818    0.014\n  GetAndSetFieldInt                   2.728    0.012\n  GetAndSetFieldString                3.002    0.014\n  GetAndSetAcquireStaticFieldInt      2.438    0.007\n  GetAndSetAcquireStaticFieldString   2.811    0.010\n  GetAndSetAcquireFieldInt            2.726    0.007\n  GetAndSetAcquireFieldString         2.998    0.010\n  GetAndSetReleaseStaticFieldInt      2.436    0.007\n  GetAndSetReleaseStaticFieldString   2.813    0.010\n  GetAndSetReleaseFieldInt            2.730    0.007\n  GetAndSetReleaseFieldString         2.997    0.010\n\nBug: 65872996\n\nTest: lunch aosp_cf_x86_64_phone-userdebug \\\n  \u0026\u0026 art/test.py --host -r -t 712-varhandle-invocations --64\nTest: Repeat with ART_USE_READ_BARRIER\u003dfalse.\nTest: Repeat with ART_HEAP_POISONING\u003dtrue.\nChange-Id: I77bdf6d4b940d90b0efe499cab335e5a0fa5ca4a\n"
    },
    {
      "commit": "8f21748bf127012947ed48c40948df3f2d9c85ef",
      "tree": "70d287634fd0b3a2d43ad8de7738c9703eb0a2a6",
      "parents": [
        "ce5c830aede3313ceb22f7b2ca6c30e5b8432972"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 14 17:16:36 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 16 09:44:43 2021 +0000"
      },
      "message": "Mark move constructors/assignements as `noexcept`.\n\nAnd unmark `HashSet` copy constructor and copy assignment.\n\nTest: m\nChange-Id: Ia419f3036b2880815be446395e81c7e543388bd9\n"
    },
    {
      "commit": "ce5c830aede3313ceb22f7b2ca6c30e5b8432972",
      "tree": "7df230657a64a02c309fae9c7736c3a732f0a474",
      "parents": [
        "cd43700e88be779b62ddd0e2de0a2f62270ec44c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 12 18:13:30 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 16 08:57:56 2021 +0000"
      },
      "message": "Update source ART APEX version number from 1 to 319999900.\n\nBump the version number of the ART APEX built from sources (used, in\nparticular, for development and testing), so that it has a higher\nversion number that the (Android S) pre-built ART APEX (currently\n31071600) and can be installed on devices running an image with such a\npre-built ART APEX.\n\n(cherry picked from commit 646b2de92037f6d97e24560465d82079f3a3f411)\n\nTest: banchan com.android.art x86_64\n      m SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue\n      # Check built ART APEX version number.\n      aapt dump badging $OUT/system/apex/com.android.art.apex\n      acloud create --local-instance --branch aosp-master \\\n        --build-id 7552277 --build-target aosp_cf_x86_64_phone-userdebug\n      # Check prebuilt ART APEX version on AVD.\n      adb shell dumpsys package | grep -A4 com.android.art\n      adb install $OUT/system/apex/com.android.art.apex\n      adb reboot\n      # Check updated ART APEX version on AVD.\n      adb shell dumpsys package | grep -A4 com.android.art\nBug: 193059742\nChange-Id: I1e3147b79c8017692a3de6f2a4cfce42f39c3425\nMerged-In: I1e3147b79c8017692a3de6f2a4cfce42f39c3425\n"
    },
    {
      "commit": "cd43700e88be779b62ddd0e2de0a2f62270ec44c",
      "tree": "eef0bed185f94ea52f67e1855b2ca745e9175e9f",
      "parents": [
        "1e271ce1d48c64136a1e2f6102c78d51635ac435"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 12 16:53:57 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 16 08:17:37 2021 +0000"
      },
      "message": "Use .debug_frame version 4\n\nSome tools struggle with the augmentation.  The android clang now\nproduces version 4 by default, so we need to support it anyway.\n\nBug: 192012848\nTest: art/test.py -b --host -t 137\nChange-Id: Ia14bfbaaac9e654e97f5d4169792e0bb07ea413e\n"
    },
    {
      "commit": "1e271ce1d48c64136a1e2f6102c78d51635ac435",
      "tree": "0d9ad35b372b157dd2d1cebe00b2d6c1457067cc",
      "parents": [
        "2269f7eef5ac7821d4461b7f452313239aa100eb"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 12 15:14:13 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 16 08:17:37 2021 +0000"
      },
      "message": "Revert \"libelffile: move to DWARF3 when writing .debug_frame.\"\n\nThis reverts commit 546243375d7e129aa02ca7ea9663ed7c40b4880e.\n\nReason for revert: DWARF-64 is supposed to be used for libraries\nover 4GB in size.  It is unrelated to pointer sizes and linked bug.\n(the spec explicitly says that it should not be used in our case)\n\nBug: 192012848\nChange-Id: Iaf4679b6d4cb27d049277ef7bdc6606771390a6b\n"
    },
    {
      "commit": "2269f7eef5ac7821d4461b7f452313239aa100eb",
      "tree": "d94ba376dcad7a4d2bef8ba08a8843146b538d35",
      "parents": [
        "b572832561669794edc8577ffbbf2ef19374e8bb"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 12 15:17:14 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 16 08:17:37 2021 +0000"
      },
      "message": "Revert \"Fix style issue reported by cpplint.\"\n\nThis reverts commit 6f244fa1658e216512cf6ef15a6301defaf0f5b0.\n\nReason for revert: Reverting the CL the caused the issue.\n\nChange-Id: I7a206dfb20e7b34174b9b2e121ef5f1f3e9985c6\n"
    },
    {
      "commit": "b572832561669794edc8577ffbbf2ef19374e8bb",
      "tree": "ad2af8b17a0dff5f1c3f322ebe431fbd397537ed",
      "parents": [
        "66934efcabd2b75fd84b3cc0a8665f4ecc136727"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Fri May 21 09:45:35 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 15 18:24:50 2021 +0000"
      },
      "message": "Deprecate support of extracting BCP from boot image\n\nBug: 188905361\nTest: m\nChange-Id: I2820eb0d60ba6eedee3c67800f884512a638bacb\n"
    },
    {
      "commit": "66934efcabd2b75fd84b3cc0a8665f4ecc136727",
      "tree": "b55d836b7df49dcc73126cbcded7a0e64451ba39",
      "parents": [
        "cf74ae7eae39affc8886b4bce5294aceebb908c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 07 14:56:23 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 15 14:26:13 2021 +0000"
      },
      "message": "Clean up ClassLinker::VerifyClass.\n\nAnd drop kAccWasVerificationAttempted. It\u0027s not needed and duplicates\nlogic already present in the compiler and the class status.\n\nThis CL also enables nterp running methods with soft failures.\n\nTest: test.py\nBug: 28313047\nChange-Id: I853a6f00b9e0c38091d86fcd77167c92ff5b383c\n"
    },
    {
      "commit": "cf74ae7eae39affc8886b4bce5294aceebb908c3",
      "tree": "5a7ca403a555069f3f373c38fe45d78b53e243c6",
      "parents": [
        "dcb148a48a6bc69aba71cf3e2b8ab915ab3bf6d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 15 10:37:28 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 15 14:09:19 2021 +0000"
      },
      "message": "Small cleanups after latest verifier change.\n\nDuring AOT, the inliner can also look at whether the class needs to be\nverified at runtime. We know the class doesn\u0027t hard fail otherwise its\nstatus would be ErrorResolved.\n\nAlso un-negate IsUnverified -\u003e IsVerified.\nAlso make isVerifiedNeedsAccessCheck only return true if the class has\nthat exact state.\n\nTest: test.py and golem numbers\nBug: 28313047\nChange-Id: I2ee0024a380225e1aa120b69069a5a34d3f81113\n"
    },
    {
      "commit": "dcb148a48a6bc69aba71cf3e2b8ab915ab3bf6d5",
      "tree": "6fb49285680464b01d93b881526d27f7d4e86733",
      "parents": [
        "d61b021fffc641906d1c531a233b62a8f66c184a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 15 09:22:14 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 15 09:22:14 2021 +0100"
      },
      "message": "odsign_e2e_tests: Drop Java 11-ism\n\nUse Optional.isPresent() instead of Optional.isEmpty().\n\nBug: 193753166\nTest: m\nChange-Id: Ife11afa2310f9d78645354587e47ec98d21f07c5\n"
    },
    {
      "commit": "d61b021fffc641906d1c531a233b62a8f66c184a",
      "tree": "2e81f49ce6986fbc069286d28b48f41b19dce0c6",
      "parents": [
        "9e050ab1a061d9660eb0c1daa01a823ad75b0f05"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Jul 08 10:20:26 2021 +0800"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Jul 14 23:37:32 2021 +0000"
      },
      "message": "Trigger on-device AOT compilation for system_server on mainline update.\n\nBefore this change, AOT compilation for system_server are triggered only\non ART mainline update, and only the system_server components in /system are compiled.\n\nAfter this change, AOT compilation for system_server are triggered on\nany mainline update that touches $BOOTCLASSPATH or\n$SYSTEMSERVERCLASSPATH, and the system_server components in mainline\nmodules are also compiled.\n\nTest: manual - 1. Modify a mainline module (such as com.android.wifi).\n    2. Install the modified module on a device and reboot the device.\n    3. See if system_server components are recompiled (while boot\n    classpath components are not).\nTest: atest odsign_e2e_tests\nTest: art/tools/run-gtests.sh -j8 apex/com.android.art/bin/art/x86_64/art_libartbase_tests\nTest: atest art_odrefresh_tests\nBug: 189467174\nChange-Id: Icaba5471e9f62fd035f0a24d662ecfaf2e064cab\n"
    }
  ],
  "next": "9e050ab1a061d9660eb0c1daa01a823ad75b0f05"
}
