)]}'
{
  "log": [
    {
      "commit": "4dc6589f392d46800a3b64625245bdfe4bbbfc2f",
      "tree": "b159262fd300a650ab89277667641ebe7e13d357",
      "parents": [
        "e0386f10d4591afa9823658099e4f2ac7a693255"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 05 17:43:35 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 07 07:13:01 2021 +0000"
      },
      "message": "Don\u0027t wrap VerifyError into NoClassDefFoundError.\n\nFollow RI behavior by returning the VerifyError. NoClassDefFoundError\nonly wraps initializer errors.\n\nAlso rename the field in ClassExt from verifyError to\nerroneousStateError for better clarity.\n\nAnd remove now unused feature of storing a class in the verifyError\nfield.\n\nTest: test.py\nTest: 824-verification-rethrow\nBug: 28313047\nChange-Id: I19383f7b74f22a62ab1e0b8a13bea75a14c7b33f\n"
    },
    {
      "commit": "e0386f10d4591afa9823658099e4f2ac7a693255",
      "tree": "433907529c66ad9ff68227b13c7e7c6ab4506c68",
      "parents": [
        "dd411969bb486c36081926d61dbcc0bfbc8066a5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 05 11:35:10 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 06 17:06:58 2021 +0000"
      },
      "message": "Add standalone ART gtests to `TEST_MAPPING` group `presubmit`.\n\nOutput of `art/test/utils/regen-test-files`:\n\n  $ art/test/utils/regen-test-files\n  Generated Blueprint files for 626 ART run-tests out of 930 (67%).\n  Generated TEST_MAPPING entries for 376 ART run-tests out of 930 (40%):\n    376 ART run-tests (100%) in `mainline-presubmit` test group.\n    376 ART run-tests (100%) in `presubmit` test group.\n     19 ART gtests (100%) in `presubmit` test group.\n      0 ART run-tests (0%) in `postsubmit` test group.\n\nTest: atest --test-mapping art:presubmit\nTest: Rely on TreeHugger presubmits\nBug: 152379281\nChange-Id: Ibfcf212a4bc3094ca74f8f3c0f98469810c6ea19\n"
    },
    {
      "commit": "dd411969bb486c36081926d61dbcc0bfbc8066a5",
      "tree": "aa0601299b351d41c349e64ed468cb2c9b95e6f4",
      "parents": [
        "f040914a122be86e280efe5e31af1168f2b7c72e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 25 08:55:22 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 06 13:58:08 2021 +0000"
      },
      "message": "VarHandle: add StaticFieldVarHandle class\n\nAdd StaticFieldVarHandle class to keep a live reference to the\ndeclaring class for the target field of VarHandle\u0027s targeting static\nfields.\n\nBug: 191980149\nTest: art/test.py --host -r -g\nChange-Id: I3a1cada6591d146b8f9fc9066105e3b617290185\n"
    },
    {
      "commit": "f040914a122be86e280efe5e31af1168f2b7c72e",
      "tree": "8ea3fa76be8f215d36977477015ed7f9f3a2f65c",
      "parents": [
        "b4bd92f27fb143135870d07b459ea52637afcfa5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 22 15:45:03 2021 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 06 10:52:35 2021 +0000"
      },
      "message": "Uncouple ART gtests from the ART APEX.\n\nIntroduce standalone versions of ART gtests on target, not bundled\nwith the ART APEX.\n\nSo far ART gtests have always been built as debug artifacts (and\nlinked against ART debug libraries). Make some adjustments in some of\nthese tests so that they can also work as non-debug artifacts and be\nused with the Release ART APEX (which contains only non-debug\nartifacts).\n\nNewly added tests:\n* `art_standalone_cmdline_tests`\n* `art_standalone_compiler_tests`\n* `art_standalone_dex2oat_tests`\n* `art_standalone_dexdump_tests`\n* `art_standalone_dexlist_tests`\n* `art_standalone_dexoptanalyzer_tests`\n  * Note: Requires root access to the device.\n* `art_standalone_libartbase_tests`\n* `art_standalone_libartpalette_tests`\n* `art_standalone_libartservice_tests`\n* `art_standalone_libarttools_tests`\n* `art_standalone_libdexfile_support_tests`\n* `art_standalone_libdexfile_tests`\n* `art_standalone_libprofile_tests`\n* `art_standalone_oatdump_tests`\n* `art_standalone_odrefresh_tests`\n* `art_standalone_profman_tests`\n  * Note: Requires root access to the device.\n  * Note: Some tests (2 out of 37) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_runtime_compiler_tests`\n* `art_standalone_runtime_tests`\n  * Note: Some tests (16 out of 686) are failing and have been\n    temporarily disabled.\n  * Note: Some tests (4 out of 686) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_sigchain_tests`\n\nTests not added:\n* `art_standalone_dexanalyze_tests`\n  * Reason: ART binary `dexanalyze` is not part of the Release ART APEX.\n* `art_standalone_dexdiag_tests`\n  * Reason: ART binary `dexdiag` is not part of the Release ART APEX.\n* `art_standalone_dexlayout_tests`\n  * Reason: ART binary `dexlayout` is not part of the Release ART APEX.\n* `art_standalone_imgdiag_tests`\n  * Reason: ART binary `imgdiag` is not part of the Release ART APEX.\n\nTest: atest -a art_standalone_cmdline_tests\nTest: atest -a art_standalone_compiler_tests\nTest: atest -a art_standalone_dex2oat_tests\nTest: atest -a art_standalone_dexdump_tests\nTest: atest -a art_standalone_dexlist_tests\nTest: atest -a art_standalone_dexoptanalyzer_tests\nTest: atest -a art_standalone_libartbase_tests\nTest: atest -a art_standalone_libartpalette_tests\nTest: atest -a art_standalone_libartservice_tests\nTest: atest -a art_standalone_libarttools_tests\nTest: atest -a art_standalone_libdexfile_support_tests\nTest: atest -a art_standalone_libdexfile_tests\nTest: atest -a art_standalone_libprofile_tests\nTest: atest -a art_standalone_oatdump_tests\nTest: atest -a art_standalone_odrefresh_tests\nTest: atest -a art_standalone_profman_tests\nTest: atest -a art_standalone_runtime_compiler_tests\nTest: atest -a art_standalone_runtime_tests\nTest: atest -a art_standalone_sigchain_tests\nTest: atest -a art_standalone_\\*_tests\nTest: m art_chroot \u0026\u0026 atest ArtGtestsTargetChroot\nBug: 162834439\nBug: 162734417\nChange-Id: I8beda9159d48c4ca495698357dc3bd95e3ff84d5\n"
    },
    {
      "commit": "b4bd92f27fb143135870d07b459ea52637afcfa5",
      "tree": "521f811ea786e178f685316b035fe6cb0ced0605",
      "parents": [
        "53a6334ac751aceb65d4994b81f4af815f749295"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 05 12:18:26 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 06 08:21:13 2021 +0000"
      },
      "message": "Faster hashing in `ClassLinker::LinkVirtualMethods()`.\n\nMeasurement shows that `ComputeModifiedUtf8Hash()` is faster\nwhen iterating over `std::string_view` than `const char*`.\nHowever, getting the length of the string with `strlen()`\nwould outweigh the benefits, so we shall only use the new\n`ComputeModifiedUtf8Hash(std::string_view)` overload when\nwe can avoid (or usually avoid) the `strlen()` call.\n\nIn `ClassLinker::LinkVirtualMethods()`, method names come\nfrom the dex file and we can avoid the `strlen()` call as\nlong as they are ASCII which is usually the case (at least\nfor boot class path methods; proguarded apps sometimes use\nnon-ASCII method names), so use `std::string_view` there.\nAlso simplify the code a bit, avoiding the UTF16 length\ncomparison. This has some trade-offs as we delay the length\ncomparison until we know the length in chars (and compare\nthat length instead) but we also replace `strcmp()` with a\nfaster `memcmp()`.\n\nThe changes to the Modified UTF-8 hashing API also prepare\nfor future work such as calculating array class descriptor\nhash without a string allocation for the full descriptor.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 181943478\nChange-Id: I6d45f738903000c55d401b776906dac83fca1a19\n"
    },
    {
      "commit": "53a6334ac751aceb65d4994b81f4af815f749295",
      "tree": "5d9f9c8fc1ca9e982972599d1bdf0969e1ebd2f0",
      "parents": [
        "2c9667363ba0f8178a077332a8ec1c74426fdc70"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 10 14:30:00 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 06 08:15:17 2021 +0000"
      },
      "message": "Improve comments in ReadBarrierOption.\n\nTest: m\nBug: 119486698\nChange-Id: I6afa42b03ac02b596b782a24fee2769d9138deee\n"
    },
    {
      "commit": "2c9667363ba0f8178a077332a8ec1c74426fdc70",
      "tree": "b3b8f5c32c423e10f1419cd3fd4d35fdd0e4ac94",
      "parents": [
        "ea936c02701dc7ac773f5c2272dafde5e1967ea0"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri Jul 02 12:04:15 2021 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Jul 05 09:41:08 2021 +0100"
      },
      "message": "Don\u0027t delete everything in apexdata/com.android.art.\n\nRather than deleting everything we now specifically delete the\nartifacts directory when validation fails or forcing compilation. This\nallows the pending directory, with CompOS artifacts, to be preserved\nand used as an alternative.\n\nAs a slightly gratuitous bonus, delete the staging directory when\nwe\u0027re done with it, rather than just its contents.\n\nTest: Manual, create pending directory, see it preserved.\nTest: atest --host art_odrefresh_tests\nTest: Presubmits\nBug: 190166662\nChange-Id: Ic6f0cb15eb22b3a235d9df90653c6e6d63ea80bc\n"
    },
    {
      "commit": "ea936c02701dc7ac773f5c2272dafde5e1967ea0",
      "tree": "2327327eff2fa2844fb71af8d9ee8a0f48dc7a74",
      "parents": [
        "8d5d58554519ffc673760ba932a77e113f68c5fe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 25 17:10:49 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 05 07:33:20 2021 +0000"
      },
      "message": "dex2oat: Faster retrieval of profile data.\n\nAvoid the slow `ProfileCompilationInfo::GetMethodHotness()`.\nCache profile index to avoid repeating the `DexFileData`\nsearch and use new specialized functions that retrieve only\nthe required information instead of full `MethodHotness`.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 181943478\nChange-Id: Iaf8486a5e5b12f114c8abb9cfdedf6fc4ed62e20\n"
    },
    {
      "commit": "8d5d58554519ffc673760ba932a77e113f68c5fe",
      "tree": "39b5519ce4ba35bf0d15fd7e799811ec9a5e1d76",
      "parents": [
        "c94ab92f6e61b9ea9d90bdb3d72c4d4e2aab9db5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 30 17:58:18 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Jul 04 18:27:22 2021 +0000"
      },
      "message": "Disable run-test `art-run-test-2040-huge-native-alloc`.\n\nThis test is currently failing when run with the `ArtRunTest` TradeFed\ntest runner.\n\nOutput of `art/test/utils/regen-test-files`:\n\n  Generated Blueprint files for 626 ART run-tests out of 930 (67%).\n  Generated TEST_MAPPING entries for 376 ART run-tests out of 930 (40%):\n    376 tests (100%) in `mainline-presubmit` test group.\n    376 tests (100%) in `presubmit` test group.\n    0 tests (0%) in `postsubmit` test group.\n\n(No change to generated ART test files.)\n\nTest: atest --test-mapping art:presubmit\nChange-Id: I2facdab526a263ddefa4b316c31c89ea2a019f55\n"
    },
    {
      "commit": "c94ab92f6e61b9ea9d90bdb3d72c4d4e2aab9db5",
      "tree": "b3159ecd96135c7a58999ae1bbcf4c625ee774fb",
      "parents": [
        "bf097b7f6354e7e1e8c0a7b97fb728744136e271"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 01 18:50:43 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Jul 04 17:30:34 2021 +0000"
      },
      "message": "Add `liblog` as a dependency of `dex2oat` Soong modules.\n\nThis is in order to reduce differences in ART between AOSP and the\ninternal tree.\n\n(partly cherry picked from commit bdd9d71101edf4fd8220c18e28a7dccf8a72afda)\n\nTest: mmma art\nChange-Id: Ie00f630d1bbc6c196616b1f781b1eda4ae64b39f\nMerged-In: Ifeacba4cccf048e437b1906cf1592b8c2608cce4\n"
    },
    {
      "commit": "bf097b7f6354e7e1e8c0a7b97fb728744136e271",
      "tree": "da074baae153743c07ab7066befe853e37ee8afc",
      "parents": [
        "a9967a2ecee9043d92b97b21def3a9a4bdd803c2"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Thu Jul 01 21:42:03 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 02 22:17:10 2021 +0000"
      },
      "message": "ART clean up metrics reporter\n\nTest: TH\nChange-Id: Iaf177c301a6bc9dedde14aca2900d4c2376cde6a\n"
    },
    {
      "commit": "a9967a2ecee9043d92b97b21def3a9a4bdd803c2",
      "tree": "a42404426f94f397de86d2b4f44882fcc362adea",
      "parents": [
        "cd133d85874d94cd05b5ba11389c851550e6d8f4"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Jun 30 21:43:13 2021 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jul 02 17:16:38 2021 +0000"
      },
      "message": "Replace ART\u0027s core-platform-api stub with module-lib stubs\n\nThe stub should be identical now, and thus replacing it\nshould cause no behavior change.\n\nIt will help later remove the @CorePlatformApi usage in the\njava sources.\n\nBug: 192645954\nBug: 192446466\nTest: m droid\nChange-Id: I22538a0f65669885852a2cf1994c6d3a5561e52f\n"
    },
    {
      "commit": "cd133d85874d94cd05b5ba11389c851550e6d8f4",
      "tree": "514f7f1fa4bfaa9038e5c98a299543ccbb4bfdd6",
      "parents": [
        "971068dcaf5955634679dbfaf7b562ed52aff772"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 25 16:10:39 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 02 15:27:21 2021 +0000"
      },
      "message": "Verifier cleanups.\n\n- For apps \u003c\u003d S, keep the behavior of not analyzing an unreachable\n  handler. If \u003e\u003d T, we analyze it to simplify handling in the compiler.\n- Remove VERIFY_ERROR_SKIP_COMPILER and fold uncompilable methods into\n  checking HasInstructionThatWillThrow.\n\nTest: test.py\nBug: 28313047\nChange-Id: I20b65cf50def2a4a95617a03142575b8591ae0ec\n"
    },
    {
      "commit": "971068dcaf5955634679dbfaf7b562ed52aff772",
      "tree": "3e76f60e7136f53ca0d19a23914721515e8b2725",
      "parents": [
        "3d12876bd9782831ad5c907f1f9dc94d10867f3d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 30 21:17:53 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 02 10:19:42 2021 +0000"
      },
      "message": "runtime: add -Xdeny-art-apex-data-files\n\nThis option prevents the runtime from loading AOT artifacts installed\nin /data/misc/apexdata/com.android.art.\n\nBug: 192049377\nTest: manually adding option and running odsign_e2e_tests\nTest: adding option and looking at proc/maps for system_server and zygote\n\nChange-Id: I56c7ce55b64de72faf39a06238089fe4b6b84b88\n"
    },
    {
      "commit": "3d12876bd9782831ad5c907f1f9dc94d10867f3d",
      "tree": "cd2f65f171ff5ff83bd447513abf171696359262",
      "parents": [
        "1792c6ff1c9838dfbe948be124dc1a8501fc6636"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jul 01 09:01:51 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 02 01:40:06 2021 +0000"
      },
      "message": "Add special control flags for system server reporting\n\nSystem server is important enough to have its own config.\n\nTest: gtest\nBug: 170149255\nChange-Id: I33741751717ef3474f3a89e8fda8ad19b9e952ed\n"
    },
    {
      "commit": "1792c6ff1c9838dfbe948be124dc1a8501fc6636",
      "tree": "f8df705069592bc5037f6f580fcafe0df07f6d91",
      "parents": [
        "4f388e3f26925f84d0a623a5a0e3c909fd09bd98"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jun 24 17:35:50 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jul 01 20:17:33 2021 +0000"
      },
      "message": "Add -XX:ForceJavaZygoteForkLoop flag\n\nSetting this to true effectively disables the zygote native fork\nloop, either for testing/measurement purposes, or as a fallback.\n\nBug: 192020504\nTest: Check logcat with and without the flag.\nChange-Id: I83c401d21ae2797442011d9ac6f23c78990920bd\n"
    },
    {
      "commit": "4f388e3f26925f84d0a623a5a0e3c909fd09bd98",
      "tree": "5002223ee4d6b410d7e961ee50447d0a5538f14d",
      "parents": [
        "a934b1166e03f940f49b08acb7d777f7e24b584d"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 28 12:39:14 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 01 10:19:16 2021 +0000"
      },
      "message": "x86_64: Implement VarHandle.compareAnd{Set,Exchange} for fields.\n\nReuse `GenCAS` function and extend it to support `compareAndExchange`\noperation in addition to `compareAndSet`. For convenience, split it into\nthree functions for integral types, floating-point types and references,\nas these cases are handled differently and require different number of\ntemporary registers.\n\nAlso, rename CreateIntIntIntIntIntToInt to CreateUnsafeCASLocations and\nuse RAX for output to take advantage of the CMPXCHG side-effect.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                                  before  after\n  ----------------------------------------------------------\n  CompareAndSetStaticFieldInt                2.843   0.00910\n  CompareAndSetStaticFieldString             3.256   0.01017\n  CompareAndSetFieldInt                      3.161   0.00910\n  CompareAndSetFieldString                   3.486   0.01017\n  WeakCompareAndSetStaticFieldInt            2.820   0.00895\n  WeakCompareAndSetStaticFieldString         3.222   0.01016\n  WeakCompareAndSetFieldInt                  3.144   0.00910\n  WeakCompareAndSetFieldString               3.454   0.01018\n  WeakCompareAndSetPlainStaticFieldInt       2.819   0.00896\n  WeakCompareAndSetPlainStaticFieldString    3.227   0.01016\n  WeakCompareAndSetPlainFieldInt             3.150   0.00909\n  WeakCompareAndSetPlainFieldString          3.456   0.01019\n  WeakCompareAndSetAcquireStaticFieldInt     2.822   0.00896\n  WeakCompareAndSetAcquireStaticFieldString  3.226   0.01016\n  WeakCompareAndSetAcquireFieldInt           3.148   0.00910\n  WeakCompareAndSetAcquireFieldString        3.455   0.01020\n  WeakCompareAndSetReleaseStaticFieldInt     2.820   0.00895\n  WeakCompareAndSetReleaseStaticFieldString  3.223   0.01015\n  WeakCompareAndSetReleaseFieldInt           3.143   0.00910\n  WeakCompareAndSetReleaseFieldString        3.458   0.01013\n  CompareAndExchangeStaticFieldInt           2.765   0.00895\n  CompareAndExchangeStaticFieldString        3.183   0.01012\n  CompareAndExchangeFieldInt                 3.076   0.00907\n  CompareAndExchangeFieldString              3.443   0.01015\n  CompareAndExchangeAcquireStaticFieldInt    2.774   0.00895\n  CompareAndExchangeAcquireStaticFieldString 3.177   0.01012\n  CompareAndExchangeAcquireFieldInt          3.092   0.00907\n  CompareAndExchangeAcquireFieldString       3.453   0.01015\n  CompareAndExchangeReleaseStaticFieldInt    2.796   0.00895\n  CompareAndExchangeReleaseStaticFieldString 3.193   0.01014\n  CompareAndExchangeReleaseFieldInt          3.105   0.00909\n  CompareAndExchangeReleaseFieldString       3.451   0.01015\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: I816f9c6a3786efe921fe445536f9ea3ddae801d5\n"
    },
    {
      "commit": "a934b1166e03f940f49b08acb7d777f7e24b584d",
      "tree": "aeb390e4a6abfc0c27f99ac7c81cee541c51e09d",
      "parents": [
        "bbdb1ed109532f42949f84194e7717453f2f37f6"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Jun 29 22:03:29 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 01 09:43:39 2021 +0000"
      },
      "message": "Export the system modules for module APIs stub\n\nBug: 183097033\nTest: m droid\nChange-Id: I9145fc31842fe852bfee092f1b56ba1a5c53e624\n"
    },
    {
      "commit": "bbdb1ed109532f42949f84194e7717453f2f37f6",
      "tree": "1fcdcf4cff743c209e1f9b732ea4a5b59d4f6939",
      "parents": [
        "9b996ce378e58f4699145721a1708732d5399a95"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 29 14:12:05 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 01 09:42:30 2021 +0000"
      },
      "message": "Cache boot classpath checksums at runtime init.\n\nTo speed up oat file checksums check.\n\nTest: test.py\nBug: 191828947\nChange-Id: I2fe97a5626220470ec3edf457a3a24e7d50ce6d7\n"
    },
    {
      "commit": "9b996ce378e58f4699145721a1708732d5399a95",
      "tree": "be1392dd6a0c029c92f1de195b74961d83da112e",
      "parents": [
        "c2753e6beec483b5b14161b6bbc8e0a86aef9397"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 29 16:05:38 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 01 01:52:04 2021 +0000"
      },
      "message": "Replace JIT total time histogram with total time counter\n\nWe don\u0027t report histograms, so let\u0027s get the total time as a\nproxy to measure JIT activity.\n\nTest: gtest\nBug: 170149255\nChange-Id: I76911f5e7f93f00dc9f133e7f89a1045b31dedc7\n"
    },
    {
      "commit": "c2753e6beec483b5b14161b6bbc8e0a86aef9397",
      "tree": "070107ce0d907ab246d4a33f4d3aac7e679006c7",
      "parents": [
        "546243375d7e129aa02ca7ea9663ed7c40b4880e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 25 15:34:09 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 01 01:52:04 2021 +0000"
      },
      "message": "Fix compiler filter / reason reporting and add the ISA to the metrics\n\nThe compiler filter / reason reporting was not accurate for a variety\nof reasons. (e.g. reporting was only done at startup, it was relying\non imprecise APIs and had errors in the logic).\n\nIn order to keep track of the precise optimization status, this CL\nintroduces the concept of AppInfo, which encapsulates the data about\nthe application / system server code paths, their optimization status\nand possible other metadata (e.g. profiles).\n\nTo populate it, we rely on 2 distinct events:\n1) The framework calling VMRuntime#registerAppInfo to inform the\nruntime about the applications code paths and their types (e.g. primary,\nsplit, secondary).\n2) Class loading, when we can determine the actual optimization status\nlike filters, reasons, and whether or not we can load the odex files.\n\nThese events may happen in any order so we could deal with a partial\nstate at some point in time, but in the majority of cases they always\nhappen at Class Loading, followed by RegisterAppInfo.\n\nThis CL also deletes the OatFileManager#getPrimaryOatFile which was\na misleading API as it didn\u0027t work in most cases. It also adds more\ntests to the metrics/reporting infra for previous missing or\nunimplemented cases.\n\nTest: gtest\nBug: 170149255\nChange-Id: If0a7a25d06ff6fb89fe4861139b7dee61c05814d\n"
    },
    {
      "commit": "546243375d7e129aa02ca7ea9663ed7c40b4880e",
      "tree": "adc158db1f6d6d6c482ac88462ad687a63d8267d",
      "parents": [
        "7ffab8106445905d30fdef6291ebd18765c961f0"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jun 25 17:37:32 2021 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jul 01 00:37:35 2021 +0000"
      },
      "message": "libelffile: move to DWARF3 when writing .debug_frame.\n\nzR augmentation in .debug_frame isn\u0027t recognized by llvm-dwarfdump.\nThis leads to below test failure after compiler update:\n  DwarfTest.DebugFrame\n  DwarfTest.x86_64_RegisterMapping\n\nSo switch to DWARF3, which supports 64-bit format without using zR\naugmentation.\n\nBug: 192012848\nTest: run art-test\nChange-Id: Ib37c0bba7a293ae7b04c8cc0e9e09c045bcc0287\n"
    },
    {
      "commit": "7ffab8106445905d30fdef6291ebd18765c961f0",
      "tree": "fba5871a470b97ffc3767ae286b4b3e4105cf200",
      "parents": [
        "a4d28dd66683c1bc27ad936d30aee71e73b084db"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 30 11:13:19 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 30 15:35:30 2021 +0000"
      },
      "message": "Adjust data dir set up in `CommonArtTestImpl::SetUpAndroidRootEnvVars`.\n\nDon\u0027t set up the `ANDROID_DATA` dir as a subdirectory of\n`/data/dalvik-cache` in\n`art::CommonArtTestImpl::SetUpAndroidRootEnvVars` (used in some ART\ngtests), as it is not accessible on `user` builds; instead, use a\nsubdirectory of `/data/local/tmp`, which does not require any special\npermission.\n\n(cherry picked from commit c09606a3b1c7658dadbd7977d1368bf51c735fa7)\n\nTest: m art_chroot \u0026\u0026 atest ArtGtestsTargetChroot\nTest: Run ART gtests as described in `test/README.chroot.md`\nBug: 162834439\nChange-Id: I19c7015b0140610a6fd2150a7f7a057465312b0c\nMerged-In: I19c7015b0140610a6fd2150a7f7a057465312b0c\n"
    },
    {
      "commit": "a4d28dd66683c1bc27ad936d30aee71e73b084db",
      "tree": "213bf9c43b8d9d8ec9642049faaa37020a509831",
      "parents": [
        "44dc8a300adb63b1bf465de555b7f8cce0481bb3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 30 11:28:06 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 30 13:21:12 2021 +0000"
      },
      "message": "Avoid marking proxy class as erroneous twice.\n\nThis code path was missed in\n    https://android-review.googlesource.com/102184 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 192246059\nChange-Id: Ie41c3d55b76667b186dc47999e024372669764f9\n"
    },
    {
      "commit": "44dc8a300adb63b1bf465de555b7f8cce0481bb3",
      "tree": "095bc4801079f46f36a474db3e05dded5f7971f8",
      "parents": [
        "c9df5ce4cca760b27e9650363eaba5b92d87324c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 21 15:23:49 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 30 13:04:57 2021 +0000"
      },
      "message": "verifier: do not infer an instruction will throw.\n\nTurning a regular instruction into a throwing one has currently\nundesirable consequences:\n1) It leads to inconsistencies between the AOT verification and the\n   runtime verification.\n2) It treats the following code dead and does not analyze it. We treat\n   this as an non-compilable method as it\u0027s a lot simpler for the\n   compiler to consider all code verified.\n3) It prevents verification optimizations like doing one-pass\n   analysis over the code.\n\nTo be AOT / runtime consistent and follow RI behavior, stop considering\nsuch instructions as throwing.\n\nWe make this API version dependent for app compatibility reasons.\n\nTest: test.py\nBug: 28313047\nChange-Id: I9c847043d1f431f642731a70f651c93ef22fdf86\n"
    },
    {
      "commit": "c9df5ce4cca760b27e9650363eaba5b92d87324c",
      "tree": "a9dcb48843d5a5baf8d52fc347dd6c329395be0a",
      "parents": [
        "f8b5288ab53fa3dbc95ddc22264c53165fdefbdd"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Jun 29 18:35:00 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 30 12:14:39 2021 +0000"
      },
      "message": "Revert \"Adjust paths in buildbolt-symbolize-crashes.sh.\"\n\nThis reverts commit 8ef8ad5ab4f1510b0a7faa6d7c5db7e66b58f083.\n\nReason for revert: development/scripts/symbol.py now uses an absolute path to llvm-cxxfilt when run locally.\n\nChange-Id: Ic405d3a6e8652d4896e8aef34a70ec8e234c537d\n"
    },
    {
      "commit": "f8b5288ab53fa3dbc95ddc22264c53165fdefbdd",
      "tree": "2fdee1be7012bc73d6776d508619f8c0ef4feeaa",
      "parents": [
        "d7b416118ab6820fb1fbe93ca194c4a748b9fa59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 25 17:00:30 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 30 12:14:25 2021 +0000"
      },
      "message": "Remove experimental flag in verifier.\n\nWe don\u0027t use it anymore. If we add new opcodes in the future, we can\ntest by disabling the verifier (something which was hard to do at the\ntime).\n\nTest: test.py\nBug: 28313047\nChange-Id: Idce9a520995d12fdfc3bd314bc06b542492a0ab8\n"
    },
    {
      "commit": "d7b416118ab6820fb1fbe93ca194c4a748b9fa59",
      "tree": "ad91272848fbe24783ee60135c357ed9bbb2f069",
      "parents": [
        "f368641c5bd373749194259409dc467df7a77edb"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jun 17 18:31:14 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jun 29 23:55:17 2021 +0000"
      },
      "message": "Add more weak reference information to traces\n\nSeparate the marking piece of EnqueueFinalizerReferences.\n\nReport the number of finalizable objects.\n\nSimilarly report the number of SoftReferences we encounter\nand the amount of time we spend marking as a result.\n\nAdd trace information and possibly log entry when we block\ndereferencing a WeakReference or the like.\n\nDo the same for JNI WeakGlobals, with some code restructuring\nto enable that.\n\nDelete one of the two nested and almost entirely redundant\nProcessReferences ATrace tags, thus reducing the space needed\nto display HeapTaskDaemon back to what it was.\n\nBug: 189738006\nTest: Boot sc-dev and look at trace\nChange-Id: I198db632d957bcb9353ab945cedc92aa733963f0\n"
    },
    {
      "commit": "f368641c5bd373749194259409dc467df7a77edb",
      "tree": "bb2dd4f603da3de8381c4a7b148344ff4d476350",
      "parents": [
        "45848daf541599548145c265ece14aad0e973639"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Jun 25 21:30:30 2021 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Jun 29 15:41:56 2021 +0000"
      },
      "message": "[metrics] Add total-gc-time and adjust other metrics\n\nThis change introduces the following:\n1) Added total-gc-collection-time in ms as a counter so that, at anytime,\nwe can know how much time is spent in GC.\n2) Added MetricsAverage to report average of the given data point.\n3) Changed mutator-paue-time to average, which makes more sense. Also it\nis renamed to world-stop-time.\n4) Added averages of gc-throughputs.\n5) Removed gc-meta-data-size metric as we don\u0027t capture it normally due\nto the high cost of capturing this data.\n\nTest: Observe pitot data\nBug: 191404436\nChange-Id: I9da7f8c588ac4b42414beedb1b4004e0ac4b5fc2\n"
    },
    {
      "commit": "45848daf541599548145c265ece14aad0e973639",
      "tree": "bc6300d2470103e2279f613afefd56f3e8448d1b",
      "parents": [
        "e9a4a6013010b6cc0fb392de24255deacc62c1af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 29 09:47:19 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 29 11:51:45 2021 +0000"
      },
      "message": "Revert cdex version back to 001.\n\nWe bumped the version due to disabling deduping but:\n1) the reason for disabing deduping are minor (access checks in Java)\n2) public users (and dogfooders now) will have already regenerate a cdex\n   file with code item deduping removed, thanks to the vdex format having\n   changed in S.\n\nBug: 192327398\nTest: test.py\nChange-Id: I5ccb2dbc37daa682909db671f400f151152f70ac\n"
    },
    {
      "commit": "e9a4a6013010b6cc0fb392de24255deacc62c1af",
      "tree": "a0f33b7d069ec2734b11777124c7bf98d71bd59f",
      "parents": [
        "9b4e556fbd3ffc5686306d2cda7b8367dca0fdbe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 22 16:33:34 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 29 09:50:51 2021 +0000"
      },
      "message": "Transaction support for MethodType in dex cache.\n\nTest: TransactionTest.ResolveMethodType\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interpreter\nBug: 191765508\nChange-Id: I8c80e29fb84d50ca782d05db1bc4634fc002c726\n"
    },
    {
      "commit": "9b4e556fbd3ffc5686306d2cda7b8367dca0fdbe",
      "tree": "c315ab1ab39215d03d08c45d8a5800a51e205a16",
      "parents": [
        "3044d7ab7bca4c35d5a74bd4a524d8aa7a466cf7"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 28 14:33:35 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jun 29 09:29:12 2021 +0000"
      },
      "message": "x86: Add tests for CMPXCHG (without LOCK prefix).\n\nFor 8/32/64-bit variants LOCK CMPXCHG is implemented via CMPXCHG, so the\ntests for LOCK CMPXCHG cover CMPXCHG as well. But the 16-bit variant of\nLOCK CMPXCHG does not use CMPXCHG, because it has to reorder prefixes:\nthe operand size override prefix must go before the LOCK prefix to match\nclang order. Therefore 16-bit CMPXCHG was not tested previously.\n\nAlso, change helpers that convert `ByteRegister` to `Register` for\ntesting to call the actual function rather than reimplement it.\n\nBug: 65872996\nTest: m test-art-host-gtest  # new test cases for CMPXCHG\nChange-Id: I234b7a7e69da49be310b1e89c83447f8b11af93d\n"
    },
    {
      "commit": "3044d7ab7bca4c35d5a74bd4a524d8aa7a466cf7",
      "tree": "0de8c535e33d33edb58543dc46b3d3dca3025f17",
      "parents": [
        "9060ebe88ee6917bea714d93b522197b4b184267"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 28 14:20:19 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jun 29 09:28:45 2021 +0000"
      },
      "message": "x86_64: Add tests for CMPXCHG (without LOCK prefix).\n\nFor 8/32/64-bit variants LOCK CMPXCHG is implemented via CMPXCHG, so the\ntests for LOCK CMPXCHG cover CMPXCHG as well. But the 16-bit variant of\nLOCK CMPXCHG does not use CMPXCHG, because it has to reorder prefixes:\nthe operand size override prefix must go before the LOCK prefix to match\nclang order. Therefore 16-bit CMPXCHG was not tested previously.\n\nBug: 65872996\nTest: m test-art-host-gtest  # new test cases for CMPXCHG\nChange-Id: I6d021bb40cfc767143db914ff64276a23243e046\n"
    },
    {
      "commit": "9060ebe88ee6917bea714d93b522197b4b184267",
      "tree": "fd0cf1f0ad22e93e51ef6edb17e41435955a0664",
      "parents": [
        "5b8eb16cb6476d4e04379fdcfad7ba2c731001ff"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu Jun 17 12:57:12 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 28 21:50:07 2021 +0000"
      },
      "message": "Don\u0027t let the oat file close BCP FD passed from outside\n\nBug: 186132447\nTest: odrefresh --use-compilation-os\u003d10 --force-compile\n      # complete successfully with other changes\nTest: TH\nChange-Id: I3393ccd8fdc8ece71dbed8d16ef3c62ba935ea75\n"
    },
    {
      "commit": "5b8eb16cb6476d4e04379fdcfad7ba2c731001ff",
      "tree": "3d88131dd7907d8ece308381d3b449fadc206b3f",
      "parents": [
        "55ffe7fa9ead8b501a756bb53f2571e3e7602f5e"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 28 12:38:20 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 28 17:35:18 2021 +0000"
      },
      "message": "x86_64: Add byte and word sized CMPXCHG variants and tests for them.\n\nBug: 65872996\n\nTest: m test-art-host-gtest  # new test cases for CMPXCHG\nChange-Id: Id8f691d10e60dfd5b2d9ee3b387ff3062347cde1\n"
    },
    {
      "commit": "55ffe7fa9ead8b501a756bb53f2571e3e7602f5e",
      "tree": "c4f63e30679b3e11d65268e52bf7548416f26792",
      "parents": [
        "8bf1da992a15a79ae76bcf53e9a2909912fbe96a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 14 15:18:54 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 28 11:40:15 2021 +0000"
      },
      "message": "Rename some ART gtest related Soong modules.\n\nART gtests currently link with the debug (\"d\") versions of ART\nlibraries. The gtests themselves and their libraries are compiled as\ndebug artifacts. For the sake of consistency, perform the following\nrenaming of ART gtest related Soong modules:\n\n* `libart-compiler-gtest` -\u003e `libartd-compiler-gtest`\n* `libart-dex2oat-gtest`  -\u003e `libartd-dex2oat-gtest`\n* `libart-gtest-defaults` -\u003e `libartd-gtest-defaults`\n* `libart-gtest`          -\u003e `libartd-gtest`\n* `libart-runtime-gtest`  -\u003e `libartd-runtime-gtest`\n* `libartbase-art-gtest`  -\u003e `libartbased-art-gtest`\n\nAs we plan to introduce non-debug (\"non-d\"), standalone versions of\nART gtests in the context of uncoupling ART (target) gtests from the\nART APEX (b/162834439), this renaming will help us, as we\u0027ll be able\nto use the old names of a \"d\" module for the corresponding \"non-d\"\nversion.\n\nTest: mmma art\nTest: Run ART gtests on host and target\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dfalse art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue  art/build/apex/runtests.sh\nBug: b/162834439\nChange-Id: I4ca27a7f445a760398f41a9e60a7008d77294505\n"
    },
    {
      "commit": "8bf1da992a15a79ae76bcf53e9a2909912fbe96a",
      "tree": "fa29ad215d6f0f28311b8bd7a1818b684dccaa39",
      "parents": [
        "789eb40f867de489f393fe2b7a4a5ee8c494f4c5"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jun 25 23:08:08 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Sun Jun 27 23:09:17 2021 +0000"
      },
      "message": "Do not create APEX stubs for libdexfiled.\n\nlibdexfiled isn\u0027t exported, and the stubs make abidump pick it up for\nprebuilts/abi-dumps/platform, which isn\u0027t appropriate.\n\nTest: art/build/apex/runtests.sh\nTest: art/build/build-art-module.sh\nTest: art/tools/golem/build-target.sh\nTest: art/tools/buildbot-build.sh\nTest: Some run test on host and device chroot\nBug: 172480615\nChange-Id: I1f2bb0e31b68f0c5dbb44dccf68ea34667774c2c\n"
    },
    {
      "commit": "789eb40f867de489f393fe2b7a4a5ee8c494f4c5",
      "tree": "940c16cab9792ee2422c1ac660726b3553bc54f9",
      "parents": [
        "2d97dc11b72543ed2fbb7a03b063b8fd1b06fd3a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Jun 26 05:09:24 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 26 15:45:21 2021 +0000"
      },
      "message": "Remove reference to gdbserver\n\ngdbserver was removed by I63ee74b4fbdedaa5082d2dbbb21909771caa24c1.\n\nTest: treehugger\nChange-Id: I141ea100af8c2148d60930c808f0e760857e15aa\n"
    },
    {
      "commit": "2d97dc11b72543ed2fbb7a03b063b8fd1b06fd3a",
      "tree": "7c67b2d8dc846b8bb606cf5af8eef12fb9854b7c",
      "parents": [
        "4abe8f7029292bffeb3fef1e8c96ec7ea0197c34"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jun 26 10:05:03 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jun 26 10:05:03 2021 +0100"
      },
      "message": "Initialize fragment_ and verbose_ fields in hiddenapi.cc\n\nBug: 179354495\nTest: m out/soong/hiddenapi-stub-flags.csv\n      - make sure that no errors or warnings about missing information\n        are output when building fragments.\nChange-Id: I9628dad3325c4626bdf997fac25b70898e6177b5\n"
    },
    {
      "commit": "4abe8f7029292bffeb3fef1e8c96ec7ea0197c34",
      "tree": "00a0383964a5a44319906002e95a58cd17214ef1",
      "parents": [
        "70e126af8a14b68f08acc9acadcdf5b4b0510781"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 24 23:00:08 2021 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 26 00:22:19 2021 +0000"
      },
      "message": "Allow hiddenapi list to be more lax when run on a fragment\n\nWhen run on a fragment of the bootclasspath the hiddenapi list is not\ngiven a complete set of classes so it needs to ignore missing classes.\nThis change adds the --fragment option to do that. It also adds a\n--verbose option which can be added to log the warnings anyway to make\nit easier to debug issues that arise with it.\n\nThis does not risk changing the flags as the stub-flags.csv files\ncreated with the --fragment option are compared with the monolithic\nout/soong/hiddenapi/hiddenapi-stub-flags.txt file which is not run\nwith this option to ensure that they match.\n\nBug: 179354495\nTest: m out/soong/hiddenapi-stub-flags.csv\n      - make sure that this does not change the file.\nChange-Id: I7dac41b5afe8a6d1b2faaff4f4a33c7a5dfe012d\n"
    },
    {
      "commit": "70e126af8a14b68f08acc9acadcdf5b4b0510781",
      "tree": "2b976fe92777e272019405955698868d5690b0e4",
      "parents": [
        "8048e2e34edc8c168d255ef11de2a8e994d5012c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 24 14:51:34 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 25 10:57:07 2021 +0100"
      },
      "message": "Clean up search for field by name and type strings.\n\nReuse the search algorithm introduced for methods in\n    https://android-review.googlesource.com/1744375\ninstead of a separate binary search implementation.\nThe performance difference should be within noise because\nwe\u0027re just replacing one binary search with another one and\nclasses usually contain just one field with a given name.\nTools like proguard can create a class with multiple fields\nwith the same name and different types, but the motivation\nfor this change is code reuse and consistency rather than\npeformance improvement for those edge cases.\n\nAlso call the `FindFieldByNameAndType()` helper directly\nfrom `FindFieldImpl()` to skip unnecessary proxy class\nchecks in `Class::FindDeclaredStaticField()`. This should\nprovide some minor performance improvement.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 181943478\nChange-Id: I436c73c3eb7872f5597bb7b7d3f657aaa0a1ec6d\n"
    },
    {
      "commit": "8048e2e34edc8c168d255ef11de2a8e994d5012c",
      "tree": "0d5331973cd69661323ab707015f1e0631431020",
      "parents": [
        "9e95eacdfbcf10dcd9fb62f99a7c6e18ff4b4787"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 24 15:29:50 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 25 09:53:36 2021 +0000"
      },
      "message": "testRemoveWithDelayedResultAndTimeout also flakes on target.\n\nBug: 187140709\nTest: run-libcore-tests\nChange-Id: Ib7122e01dc6e93cfc68d7416c28adeb93a69fa1d\n"
    },
    {
      "commit": "9e95eacdfbcf10dcd9fb62f99a7c6e18ff4b4787",
      "tree": "4c13c02985e38d3c304aa06c4a2c763c86c64d96",
      "parents": [
        "082659bcbf66c08e2ad9be88363c7ab88c50e114"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 23 16:42:18 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 25 09:08:59 2021 +0000"
      },
      "message": "Revert \"odrefresh: temporarily disable system_server artifact test\"\n\nThis reverts commit 6c30777a278d24e1a4c3226405416a85e6523d3f.\n\nBug: 180949581\nTest: atest odsign_e2e_tests\nChange-Id: Icce47524668dd2a92e7128af8242066741563e95\n"
    },
    {
      "commit": "082659bcbf66c08e2ad9be88363c7ab88c50e114",
      "tree": "65394c78472c90aad96daa1d6b8105760f14bf31",
      "parents": [
        "1776947f896652b232ccec3fc00a04fd7baf1d96"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jun 24 10:17:39 2021 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Jun 24 22:09:46 2021 +0000"
      },
      "message": "Switch to an assembler macro for CFI_RESTORE_STATE_AND_DEF_CFA.\n\nNewer versions of clang reject multiple assembler directives\non the same line, which breaks the preprocessor macro\nCFI_RESTORE_STATE_AND_DEF_CFA. Fix it by making it an assembler\nmacro instead.\n\nBug: 191980979\nChange-Id: I823ff9c66336931249d2bac40280b24ecdebd0cf\n"
    },
    {
      "commit": "1776947f896652b232ccec3fc00a04fd7baf1d96",
      "tree": "f6820a1b6702fe7b642427d2b3a7eb123511ede5",
      "parents": [
        "e020b7f4afc4d99cddfd52b3587280be9e3afd5d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 23 10:40:29 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 24 16:03:06 2021 +0000"
      },
      "message": "Binary search for method by name string and signature.\n\nStart with a binary search for the name string and when\nsuccessful, compare the signature. On mismatch, repeat the\nsearch with the found name index instead of the name string\nuntil we fail to find the name, have a signature match or\nend up with a method range with the same name index and\nfinish with a simple binary search for the signature.\n\nMake this search sufficiently generic so that the code can\nbe easily reused for fields in the future.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 181943478\nChange-Id: I19b4779c019e9991b6d02ace57e378c029ba1174\n"
    },
    {
      "commit": "e020b7f4afc4d99cddfd52b3587280be9e3afd5d",
      "tree": "12d79582a8ed03b0bbd61bfc57b175e4f50b8e5e",
      "parents": [
        "5fef55677ed3ce5e2255030aa58b8a39cf77fab1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 24 12:07:35 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 24 16:02:45 2021 +0000"
      },
      "message": "Faster BCP checksum verification.\n\nAvoid opening dex files for updatable BCP components.\nJust collect the checksums from jar files using the\n`DexFileLoader::GetMultiDexChecksums()` API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 191828947\nChange-Id: Ib737fabc832c56bffef8a98382f689aabe588bd2\n"
    },
    {
      "commit": "5fef55677ed3ce5e2255030aa58b8a39cf77fab1",
      "tree": "feb27e131521d1a911e08174ebc933635939423d",
      "parents": [
        "30bb6af110e0999a87c6e9fd0145fdd4a59e98d8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Jun 21 23:33:33 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jun 24 11:19:37 2021 +0000"
      },
      "message": "Clean up ART APEX manifests.\n\nmanifest-art.json: Rely on the build system to populate all required\nlibs. Besides some duplicate entries, this drops libicuuc.so,\nlibicui18n.so, and libneuralnetworks.so from the required list. None of\nthose libraries are dependencies of the ART module itself, and hence\ndon\u0027t get loaded from the ART namespace. They used to be necessary\nbefore linkerconfig supported creating links for JNI libs and from\npublic.libraries.txt, and when libnativeloader still defaulted to the\nART namespace for loading such libs.\n\ntest_apex_manifest.json: Used by test_com.android.art and should be\nidentical to manifest-art.json except for the version number. Besides\nthe above, this file contained several stale libraries.\n\nAlso try to configure proper runtime_libs dependencies for libart(d)\nfor the things it dlopen\u0027s from the ART namespace, although most\nlibraries cannot be listed there for various reasons.\n\nTest: m droid deapexer\n      deapexer info \\\n        out/target/product/vsoc_x86_64/system/apex/com.android.art.capex\n  Compare the output before and after this CL.\nTest: m test_com.android.art deapexer\n      deapexer info \\\n        out/target/product/vsoc_x86_64/obj/ETC/test_com.android.art_intermediates/test_com.android.art.apex\n  Compare the output before and after this CL.\nBug: 184148353\nChange-Id: I0d9c2a090702a95551208aad4be97ea867004a3c\n"
    },
    {
      "commit": "30bb6af110e0999a87c6e9fd0145fdd4a59e98d8",
      "tree": "74a36f9bd04db20815554f03a2e3cb9d564206bb",
      "parents": [
        "f5958f8881e299c42ac923e4751f8f34d72db7f0"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jun 15 17:34:51 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jun 24 09:14:08 2021 +0000"
      },
      "message": "x86_64: Implement VarHandle.set{Opaque,Release,Volatile} for fields.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                    before  after\n  --------------------------------------------\n  SetVolatileStaticFieldInt    2.782   0.00678\n  SetVolatileStaticFieldString 3.040   0.00678\n  SetVolatileFieldInt          3.082   0.00678\n  SetVolatileFieldString       3.317   0.00678\n  SetOpaqueStaticFieldInt      2.804   0.00177\n  SetOpaqueStaticFieldString   3.040   0.00230\n  SetOpaqueFieldInt            3.080   0.00174\n  SetOpaqueFieldString         3.317   0.00224\n  SetReleaseStaticFieldInt     2.795   0.00177\n  SetReleaseStaticFieldString  3.042   0.00281\n  SetReleaseFieldInt           3.076   0.00174\n  SetReleaseFieldString        3.326   0.00225\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: Idc5922ba4542608cf2b8d9ba686206b9956baaf6\n"
    },
    {
      "commit": "f5958f8881e299c42ac923e4751f8f34d72db7f0",
      "tree": "db15e90ad9152c5cbd9515209841c7e71764a67f",
      "parents": [
        "1282f3805b1b6f50761f3e136d569e85dbda7090"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 02 14:48:14 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 24 07:54:05 2021 +0000"
      },
      "message": "Add x86 implementation for nterp.\n\nBug: 112676029\nTest: test.py, run-libcore-tests, run-libjdwp-tests\nChange-Id: I06bd2c9dde6834f371f042fadda2ced23e02b7ed\n"
    },
    {
      "commit": "1282f3805b1b6f50761f3e136d569e85dbda7090",
      "tree": "eaf74fab46eb96d51e327676e734a139afbe5fef",
      "parents": [
        "7f0473851d9a8d5644fde8c483390a985c238433"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 21 20:22:12 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 23 19:22:50 2021 +0000"
      },
      "message": "Add sampling support in the metrics reporter\n\nThe sample rate percentage can be configured via 2 runtime\nflags (MetricsReportingMods and MetricsReportingNumMods).\n\nA runtime session will report metrics if and only if its\nsession id % MetricsReportingNumMods \u003c MetricsReportingMods.\n\nA value of 0 on the mods will effectively disable reporting,\nwhile configuring MetricsReportingMods to be equal to the\nMetricsReportingNumMods will enable reporting in all cases.\n\nTest: gtest\nBug: 170149255\nChange-Id: Ie1353e4fc0ff695fc627696145d95e9ccd3c6a94\n"
    },
    {
      "commit": "7f0473851d9a8d5644fde8c483390a985c238433",
      "tree": "c2aa685e339d731ffcd5b29ccef16c1d2611adb9",
      "parents": [
        "6c30777a278d24e1a4c3226405416a85e6523d3f"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Jun 17 16:28:46 2021 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Jun 23 17:18:33 2021 +0000"
      },
      "message": "[metrics] Add GC-work throughput metrics\n\nTrack work done (bytes processed) per second by the GC.\n\nSome other minor changes:\n1) Adjusted ConcurrentCopying class member\u0027s order to make access to\nthem more cache-access friendly. Counters accessed by GC-thread should\nnot be in the same cacheline as the one containing counters meant for\nmutators, if either of the two modify those counters.\n2) Increased max to 10\u0027000 for throughput histograms in case\nthe throughput is \u003e GB/s\n\nBug: 191404436\nTest: manual\nChange-Id: Iefaf1106690b6bae670a3a917f61194b3fcacfe0\n"
    },
    {
      "commit": "6c30777a278d24e1a4c3226405416a85e6523d3f",
      "tree": "d67168ccd4132f327bbd0f164f4b42c8e4c7a156",
      "parents": [
        "df0db3b60895184d164812fc1072957aa763f527"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 23 13:43:29 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 23 14:54:03 2021 +0000"
      },
      "message": "odrefresh: temporarily disable system_server artifact test\n\nNeeds an update to SELinux policy and zygote initialization.\n\nBug: 180949581\nFix: 191830020\nTest: atest odsign_e2e_tests\nChange-Id: Iaa1b017f21d0aa7288c18d3fb464b90d10c2a828\n"
    },
    {
      "commit": "df0db3b60895184d164812fc1072957aa763f527",
      "tree": "f8de32e6e29ee8bca954fcaa6dd1e6fcab5299df",
      "parents": [
        "a5082496431781271a0b363a567e6de793c3ec0c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 22 10:53:06 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 23 13:40:20 2021 +0000"
      },
      "message": "Allow creating MethodType inside a transaction.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 188889082\nChange-Id: Ib7e0f431e968ee2ca75e09e84b9a8e1b6e29674e\n"
    },
    {
      "commit": "a5082496431781271a0b363a567e6de793c3ec0c",
      "tree": "86dd85f0abb41a5bf823742fe18e76b775a3035d",
      "parents": [
        "ec11cf1e4a7400af1befae3a5194206f16a58047"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 21 11:14:27 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 23 08:23:49 2021 +0000"
      },
      "message": "dex2oat: Avoid unnecessary field/method resolution.\n\nThere is no reason to resolve fields and methods of a class\nwe have just resolved, so remove that code. Refactor type\nresolution and avoid resolving classes twice for boot image.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 181943478\nChange-Id: I01f182a5fdfd000819fa9d9b8926d5cb320c1e0c\n"
    },
    {
      "commit": "ec11cf1e4a7400af1befae3a5194206f16a58047",
      "tree": "613b1e67a1b8b28209a8e893374eb93d50d1a3b0",
      "parents": [
        "9b8d8198236b73489a28f46a1b62220da471c4b2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 17 15:41:08 2021 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 23 02:28:17 2021 +0000"
      },
      "message": "Add period reporting to the metrics infra\n\nThe metric reporting can now be condifured to report at\ndifferent periods, according to a predefined spec.\n\nThe period spec is given as a string (e.g. \"S,1,2,4,8,*\")\nand can specify:\n  - startup reporting\n  - fixed period reporting\n  - continuous reporting\n\nFor example \"S,1,2,4,*\" means that we will report at\nstartup, then after 1 seconds, then after 2 and 4,\nand finally, that we will continue to report every other 4s.\n\nThe specs for system server and the apps are given by different\nflags, so that we can have different reporting configurations\nfor each.\n\nAlso, this CL adds much more robust testing to the metrics\nreporter, something that was missing before.\n\nTest: gtest\nBug: 170149255\n\nChange-Id: Ifbe32b3877d2e1cdf43d30b67672f6ebfb42dadf\n"
    },
    {
      "commit": "9b8d8198236b73489a28f46a1b62220da471c4b2",
      "tree": "cd6b4bde2dd9c384c9533945a03f0b8a31fdb30b",
      "parents": [
        "49d142c02919319e76d8454e272c0c3703429208"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Mon Jun 07 14:14:41 2021 -0700"
      },
      "committer": {
        "name": "Christian Wailes",
        "email": "chriswailes@google.com",
        "time": "Tue Jun 22 22:44:54 2021 +0000"
      },
      "message": "Add tests for the artd Binder interface.\n\nThis CL adds a test to make sure the artd binder interface can be\nfound and called.\n\nTest: m ArtdIntegrationTests\nBug: 177273468\nChange-Id: Ie456cb43ad6320bc4ce206d1f8e7948622491dff\n"
    },
    {
      "commit": "49d142c02919319e76d8454e272c0c3703429208",
      "tree": "a242136938fb358e9d812848bfa63e4b97c00179",
      "parents": [
        "6a4b2990c4b7577e7ceb463baf8250b1e8a0b619"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Mon Mar 29 11:16:56 2021 -0700"
      },
      "committer": {
        "name": "Christian Wailes",
        "email": "chriswailes@google.com",
        "time": "Tue Jun 22 22:44:54 2021 +0000"
      },
      "message": "Add the ArtD binder interface\n\nTest: None\nBug: 177273468\nChange-Id: I7dab21636e41744dd29b43fb61aac390a94f5977\n"
    },
    {
      "commit": "6a4b2990c4b7577e7ceb463baf8250b1e8a0b619",
      "tree": "208467bc7518583e59bbd491125ed200fd094116",
      "parents": [
        "d9696b79c886b9a23b4a77063fac4a3e03e0406d"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jun 11 12:02:17 2021 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Jun 22 14:38:58 2021 +0000"
      },
      "message": "x86_64: Implement VarHandle.set() for static and instance fields.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                    before  after\n  --------------------------------------------\n  SetStaticFieldInt            2.421   0.00176\n  SetStaticFieldString         2.628   0.00230\n  SetFieldInt                  2.665   0.00175\n  SetFieldString               2.914   0.00225\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: I13acda88ab881c1274fcd8e154de61150409d974\n"
    },
    {
      "commit": "d9696b79c886b9a23b4a77063fac4a3e03e0406d",
      "tree": "9a850d015fcaca721e9309b777f2775202ae3672",
      "parents": [
        "59edf4b8f09d02c10fa87831573151c6b99c3149"
      ],
      "author": {
        "name": "Stelios Ioannou",
        "email": "stelios.ioannou@linaro.org",
        "time": "Mon Jun 14 15:49:26 2021 +0100"
      },
      "committer": {
        "name": "Stelios Ioannou",
        "email": "stelios.ioannou@linaro.org",
        "time": "Tue Jun 22 10:04:04 2021 +0100"
      },
      "message": "ART: Fix for no-opt debug (-O0) builds\n\nCurrently, the build process of debug builds with no optimization fails\ndue to missing symbol definitions.\n\nFor example, it throws errors like the following one:\n\nld.lld: error:\nundefined symbol:\nart::gc::collector::MarkSweep::MarkStackTask\u003cfalse\u003e::kMaxSize\n\nThis patch changes the missing symbols from constants to constant\nexpressions as a way to fix those issues. The optimized builds\nget away with this issue because the values are optimized\nto be inlined and not referenced.\n\nThe code at https://godbolt.org/z/3oYKoPzGj depicts similar\nbehaviour. Additionally, there are comments describing why\nthis issue occurs.\n\nTest: ART_DEBUG_OPT_FLAG\u003d\"-O0\" art/tools/buildbot-build.sh --host\n\nChange-Id: I66b5cfc885dfdfc82e3e4008b1e40fd68c19c999\n"
    },
    {
      "commit": "59edf4b8f09d02c10fa87831573151c6b99c3149",
      "tree": "b735be53783cb6945f281516c251212cfd7e26aa",
      "parents": [
        "156a8618372cda12eaff321c545d9126df225c0d"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu Jun 17 12:48:18 2021 -0700"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Jun 22 08:13:48 2021 +0000"
      },
      "message": "dex2oat: don\u0027t prune dex if passed as FD\n\ndex2oat prunes a dex file from its internal record if the file does not\nexist on the file path. This change avoids the pruning in case if the\ndex is passed as FD.\n\nBug: 186132447\nTest: odrefresh --use-compilation-os\u003d10 --force-compile\n      # complete successfully with other changes\nTest: TH\nChange-Id: I7dd2f0d1e100e465c2424eb36cb2d94da1e69001\n"
    },
    {
      "commit": "156a8618372cda12eaff321c545d9126df225c0d",
      "tree": "c68e18a57ec9496abb2b5146a9b6965f04a36b9c",
      "parents": [
        "ac97f3e110eb57824a2560888406e31cb157bd7b"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu Jun 17 12:47:17 2021 -0700"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Jun 22 08:13:48 2021 +0000"
      },
      "message": "odrefresh: don\u0027t stage profile if not exists\n\nThe code staged the file even if the open failed. This causes a null\npointer dereference later in JoinFilesAsFDs (only used in the\nCompilaiton OS case).\n\nBug: 186132447\nTest: odrefresh --use-compilation-os\u003d10 --force-compile\n      # complete successfully with other changes\nChange-Id: I8227d863ea56e2a7071816130f6b354ac80d03ce\n"
    },
    {
      "commit": "ac97f3e110eb57824a2560888406e31cb157bd7b",
      "tree": "065ee990c03683a156c29732e41684a0b2da88fd",
      "parents": [
        "180e1e70534d3db22571c428bdbaff16a4ed5db3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 17 20:59:10 2021 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 21 23:40:42 2021 +0000"
      },
      "message": "Allow libunwindstack to use libdexfile.\n\nOn host, building libunwinstack does not build libdexfile. So by\ndefault, the host dex file tests will fail until libdexfile is built.\nAllow libunwindstack to mark libdexfile as a runtime library to avoid\nthis problem.\n\nBug: 191276623\n\nTest: Builds and libunwindstack unit tests pass on host.\nChange-Id: Ib005709e22d0ba13e63108c4d1701d88c0e97374\n"
    },
    {
      "commit": "180e1e70534d3db22571c428bdbaff16a4ed5db3",
      "tree": "3f68563630f93ec1aef4298da18b04ca4d73e5f9",
      "parents": [
        "1ff9056b87705e251501ea4d19280a7e4fe2d009"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sun Jun 20 17:54:38 2021 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 21 20:00:10 2021 +0000"
      },
      "message": "Fix link apex for jni libs\n\nWhen library_path is \":\" splitted list of .jar files, we should iterate\nover each .jar file path to link a proper APEX namespace for JNI lib.\n\nBug: 169826971\nTest: libnativeloader_test\nTest: move libicing to appsearch apex\nChange-Id: I3df47203d336036d0e015f9c5421b30a0377087f\n"
    },
    {
      "commit": "1ff9056b87705e251501ea4d19280a7e4fe2d009",
      "tree": "aefef09122429a3960d810033443c461f73b5023",
      "parents": [
        "c893d1597b2e653659e0bc73cc2640590d01e8b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 16 14:37:42 2021 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 21 14:27:16 2021 +0000"
      },
      "message": "Move metric reporting config to flags\n\nThis will enable us to enable periodic reporting according\nto the properties set in the device config.\n\nAs part of this CL, enable cmdline only flags for thing that\ndo not make sense to read from system properties.\n\nTest: gtest\nBug: 170149255\n\nChange-Id: I99bae25d89cf3a17906b4d3c671e5c63e9a3c180\n"
    },
    {
      "commit": "c893d1597b2e653659e0bc73cc2640590d01e8b0",
      "tree": "e2cb7ac8379875e7ac23d8d5683a96f57dbe4551",
      "parents": [
        "5da0507fd2d2b6342a9b87f4cce5ebbfa2c67dd3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 17 15:40:52 2021 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 21 14:27:16 2021 +0000"
      },
      "message": "Only enable isolated compilation if requested\n\nIsolated compilation saves memory but takes much longer,\nso enable it only if requested.\n\nTest: adb install\nBug: 190277710\nChange-Id: Ia1bffb37ff25f80f7b6173fd42e6bd6ffff68e45\n"
    },
    {
      "commit": "5da0507fd2d2b6342a9b87f4cce5ebbfa2c67dd3",
      "tree": "ebc00f7f0504da88d5e0e4d1d3858b77caa2fc3d",
      "parents": [
        "4ef36490afb1cfa6a29442c8d76938ec9fd9b9dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 18 15:51:12 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 21 13:03:16 2021 +0000"
      },
      "message": "Support inlining methods that may have soft verifier failures.\n\nTest: 536-checker-needs-access-check\nTest: 675-checker-unverified-method\nBug: 28313047\nChange-Id: Ie532014a658935a20dbd0b6acebfda07c28c4af4\n"
    },
    {
      "commit": "4ef36490afb1cfa6a29442c8d76938ec9fd9b9dc",
      "tree": "6c704a77c182cdca46e210f05c539c4723123056",
      "parents": [
        "d5abbb91247742d2bd8c4fc0adf60ad0512c0dfe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 16 17:26:51 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 21 12:05:56 2021 +0000"
      },
      "message": "Fix missing nterp initializing when loading a class.\n\nFor instance methods, we were not setting the nterp entrypoint.\n\nTest: test.py\nChange-Id: If3c5e0d30120e50b98340e11ca576de219741990\n"
    },
    {
      "commit": "d5abbb91247742d2bd8c4fc0adf60ad0512c0dfe",
      "tree": "898dc1f3145edd97ca53a7eba393c5d19745a897",
      "parents": [
        "602da4f604a15249f7838eff36df2f75af72e27f",
        "2aab3821b4fd2206bfd6e14dcbd4180d0112a909"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Jun 21 05:48:51 2021 +0000"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Jun 21 05:48:51 2021 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge RQ3A.210605.005\""
    },
    {
      "commit": "602da4f604a15249f7838eff36df2f75af72e27f",
      "tree": "3c561bed21cdbcc87f40c4046356e60b62b53c59",
      "parents": [
        "2af026df0beca1fe51d58e1d3163ee7678e6078b"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jun 14 17:51:41 2021 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Jun 19 22:06:55 2021 +0000"
      },
      "message": "Further improve 2040-huge-native-alloc reliability\n\nAdd trace variant to knownfailures.\n\nAdd a way to query the current GC counter. Use that to retry in the\nevent of an unexpectedly early GC, and to fail if we don\u0027t see\na newly completed GC.\n\nDoes not yet address \"excessive blocking\" issue we\u0027ve seen\noccasionally. The addition of a less timing-sensitive success\ncriterion does give us more options.\n\nTest: Check retry path with temporary code change; Treehugger.\nBug: 190148586\nChange-Id: Ide2f6f721a86296042fcc66705cc110335f3df9b\n"
    },
    {
      "commit": "2aab3821b4fd2206bfd6e14dcbd4180d0112a909",
      "tree": "16c7561444b2ad9a3c7e1ccf1665338dd973ad40",
      "parents": [
        "2af026df0beca1fe51d58e1d3163ee7678e6078b",
        "c061201098e346e4a945cf24e0786e96e7b812b7"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Jun 18 12:24:32 2021 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Jun 18 12:24:32 2021 -0700"
      },
      "message": "DO NOT MERGE - Merge RQ3A.210605.005\n\nBug: 190855093\nMerged-In: Id348e2b25ab5f50148862c92870fa298abc7c60a\nChange-Id: Id0afe5a6a5cb53ef5f305f0f6e2895d237bcf863\n"
    },
    {
      "commit": "c061201098e346e4a945cf24e0786e96e7b812b7",
      "tree": "16c7561444b2ad9a3c7e1ccf1665338dd973ad40",
      "parents": [
        "8fe601dfeb7c551779175b82dae288f3c37e3528",
        "2af026df0beca1fe51d58e1d3163ee7678e6078b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 18 16:08:51 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 18 16:08:51 2021 +0000"
      },
      "message": "Complete support for Compressed APEXes in ART APEX test scripts. am: 2af026df0b\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736298\n\nChange-Id: Id348e2b25ab5f50148862c92870fa298abc7c60a\n"
    },
    {
      "commit": "2af026df0beca1fe51d58e1d3163ee7678e6078b",
      "tree": "7d1cab2a6324ad855ee4166f38e20a60a64b90c9",
      "parents": [
        "028cc7e1e87d2ea1cf3f56360343cff8c3334f36"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 14 12:25:04 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 18 15:58:00 2021 +0000"
      },
      "message": "Complete support for Compressed APEXes in ART APEX test scripts.\n\nAlso fix some checks in script `build/apex/art_apex_test.py`.\n\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dfalse \\\n          OVERRIDE_PRODUCT_COMPRESSED_APEX\u003dfalse \\\n        art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue \\\n          OVERRIDE_PRODUCT_COMPRESSED_APEX\u003dfalse \\\n        art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dfalse \\\n          OVERRIDE_PRODUCT_COMPRESSED_APEX\u003dtrue \\\n        art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue \\\n          OVERRIDE_PRODUCT_COMPRESSED_APEX\u003dtrue \\\n        art/build/apex/runtests.sh\nBug: 188809029\nChange-Id: Ida714cef146c9318429e30503912511d23a3891a\n"
    },
    {
      "commit": "8fe601dfeb7c551779175b82dae288f3c37e3528",
      "tree": "3f15492af07b6094ee45d4d40f6e11198a3dce2b",
      "parents": [
        "61db2e91630dbdaa7707dc7f805eaa449a2fd026",
        "028cc7e1e87d2ea1cf3f56360343cff8c3334f36"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 18 08:47:54 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 18 08:47:54 2021 +0000"
      },
      "message": "Disable compact dex code item deduping. am: 028cc7e1e8\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1737796\n\nChange-Id: I97a8f12b6ddf542a9dd9b507e22ddb8131d64dc5\n"
    },
    {
      "commit": "028cc7e1e87d2ea1cf3f56360343cff8c3334f36",
      "tree": "2181926bacd746425605d6b5fec80e6549918ba0",
      "parents": [
        "17374091085affd929d03664bee5a827e76b1b21"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 16 15:29:19 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 18 08:32:56 2021 +0000"
      },
      "message": "Disable compact dex code item deduping.\n\nIt conflicts with thread interpreter cache, where the interpreter\nexpects that once an entry is in the cache, it doesn\u0027t need to\nperform access checks again.\n\nTest: 536-checker-needs-access-check\nBug: 191252775\nChange-Id: I65999abc8afe31e4f4bf2ca403432d6cd8be70ee\n"
    },
    {
      "commit": "61db2e91630dbdaa7707dc7f805eaa449a2fd026",
      "tree": "02588c51c261160ce10c02a7c0d36485195d0370",
      "parents": [
        "305635f765ac6eee61099f38cfc5da431973c9ce",
        "a95b62a8c2bc4cf5e95857fd59c70cb166f71ed4"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Jun 17 23:09:40 2021 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Jun 17 23:10:03 2021 -0700"
      },
      "message": "DO NOT MERGE - Skip RQ3A.210605.005\n\nBug: 190855093\nMerged-In: Ieb6e324232996ec8ad5119fcbf20b81d62678fd2\nChange-Id: I3ded11b4d08d3c648d2025e270366eafa7448b37\n"
    },
    {
      "commit": "305635f765ac6eee61099f38cfc5da431973c9ce",
      "tree": "02588c51c261160ce10c02a7c0d36485195d0370",
      "parents": [
        "09acf96946ff0603f5d40ef8ab085a3b1a56bada",
        "40e8eb8266126d7883edb12778efb901fcd4894c"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Jun 17 22:43:24 2021 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Jun 17 22:43:24 2021 -0700"
      },
      "message": "DO NOT MERGE - Mark RQ3A.210410.001 as merged\n\nBug: 190855093\nMerged-In: I67970314b0af9ada201493a649166e129b87e089\nChange-Id: Ic2db13e94c054e538b3a79845f0f2c36f6800124\n"
    },
    {
      "commit": "09acf96946ff0603f5d40ef8ab085a3b1a56bada",
      "tree": "02588c51c261160ce10c02a7c0d36485195d0370",
      "parents": [
        "bc7373467248a836c9639b6d5eee1adb03858b26",
        "7c5567ae461f08449afbe123fb89080f87e05cff"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 18 00:28:45 2021 +0000"
      },
      "committer": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 18 00:28:45 2021 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge ab/7272582\" into stage-aosp-master"
    },
    {
      "commit": "7c5567ae461f08449afbe123fb89080f87e05cff",
      "tree": "2ec512eaf73ddeda5f4ed96bc7f5692cd89b230a",
      "parents": [
        "3e3b3052384b45cdb275153929cf67d72d5deee9",
        "d89c27b044488670a4149296196a18db227f7b9b"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Jun 14 21:51:38 2021 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Jun 17 21:35:54 2021 +0000"
      },
      "message": "DO NOT MERGE - Merge ab/7272582\n\nBug: 190855093\nMerged-In: If775045c12955fa6d72d40ccf2a09beef93d1699\nChange-Id: I67970314b0af9ada201493a649166e129b87e089\n"
    },
    {
      "commit": "bc7373467248a836c9639b6d5eee1adb03858b26",
      "tree": "e4c1b72d68a76e47dd96fbe5923658a627d93545",
      "parents": [
        "514f06a9d042cfcbdb18c82f674cfd8c14e31389",
        "17374091085affd929d03664bee5a827e76b1b21"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 17 20:39:18 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 17 20:39:18 2021 +0000"
      },
      "message": "Be more prescise in the profile analysis am: 1737409108\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1730990\n\nChange-Id: I5eac75f16a38a5094376882f68f4e560b70d1541\n"
    },
    {
      "commit": "17374091085affd929d03664bee5a827e76b1b21",
      "tree": "e4c1b72d68a76e47dd96fbe5923658a627d93545",
      "parents": [
        "71b2cb54099218952385c8c295dbff8be81263ce"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 08 13:45:09 2021 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 17 20:21:18 2021 +0000"
      },
      "message": "Be more prescise in the profile analysis\n\nDistinguish between:\n - compile\n - don\u0027t compile because we don\u0027t have enough delta (standard case)\n - don\u0027t compile because all profiles are empty\n\nThis will help us be more precise in the compilation strategy and\navoid re-compiling verified dex files when the profile is empty.\n\nAlso, this CL fixes dexoptanalyzer tests.\nWe needed to generate odex files instead of oat files in the\ndalvik-cache when testing the functionality. That\u0027s because during\ntests, the parent directory of the apk is always writable and\nOatFileAssistant will believe that it needs to select the odex\nfiles despite having an oat file.\n\nThe fix caught issues in the downgrade test, which were also\naddressed.\n\nTest: gtest\nBug: 188655918\nChange-Id: Id8370541f73465b32dc91aeacf2ba4dc2656c290\n"
    },
    {
      "commit": "514f06a9d042cfcbdb18c82f674cfd8c14e31389",
      "tree": "eb63230d86e92b12af34fc2ea3d3290352855bf0",
      "parents": [
        "d7abfe12939c76a520384d863ecd4265fb50cf88",
        "71b2cb54099218952385c8c295dbff8be81263ce"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 17 08:57:44 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 17 08:57:44 2021 +0000"
      },
      "message": "odrefresh: fix instruction set selection. am: 71b2cb5409\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736304\n\nChange-Id: I90ad54fa6cf8c6599a6a671a8ff9a1441cee5503\n"
    },
    {
      "commit": "d7abfe12939c76a520384d863ecd4265fb50cf88",
      "tree": "1cee9495c84311c4acc9bfd3e01cb71c1b6f23bf",
      "parents": [
        "c2a1cb768e91f4973ccd90805fa33da9f4a431f1",
        "885929fda9e1247910aa1f68f982d098fb84c843"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu Jun 17 08:57:32 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 17 08:57:32 2021 +0000"
      },
      "message": "odrefresh: Fix mis-placed delimiter when joining FDs am: 885929fda9\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1738556\n\nChange-Id: I11f5ccd89861a33e6902c293d12ecabb99f2cb15\n"
    },
    {
      "commit": "71b2cb54099218952385c8c295dbff8be81263ce",
      "tree": "eb63230d86e92b12af34fc2ea3d3290352855bf0",
      "parents": [
        "885929fda9e1247910aa1f68f982d098fb84c843"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 16 20:08:16 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 17 08:47:26 2021 +0000"
      },
      "message": "odrefresh: fix instruction set selection.\n\nRefactoring led to the instruction-set argument being dropped in\nodrefresh. This manifested itself as failures in the odsign_e2e_tests\nas the secondary zygote was running in jit-zygote mode.\n\nRe-enables the verifyGeneratedArtifactsLoaded test and enforces a\ndeterministic order for the odsign_e2e_tests.\n\nBug: 191113888\nTest: atest odsign_e2e_tests\nChange-Id: I5308a6cf9ddf16e2991bfaf9c6f27bd7e8ff0aff\n"
    },
    {
      "commit": "885929fda9e1247910aa1f68f982d098fb84c843",
      "tree": "1cee9495c84311c4acc9bfd3e01cb71c1b6f23bf",
      "parents": [
        "869746ef31936f09a93717ee1ef3960f8fb6dd69"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jun 16 15:11:16 2021 -0700"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 17 08:45:28 2021 +0000"
      },
      "message": "odrefresh: Fix mis-placed delimiter when joining FDs\n\nBroken example: [3,4,5] -\u003e \"34,5,\"\n\nBug: 187327262\nTest: Start a VM; odrefresh --use-compilation-os\u003d10 --force-compile\nChange-Id: I32d6289889645f68b4e82fdca1a770713225c357\n"
    },
    {
      "commit": "c2a1cb768e91f4973ccd90805fa33da9f4a431f1",
      "tree": "b7c534bc792b8128ee6d53089692e6b5477482c0",
      "parents": [
        "20071a3c2d6b63a3f47f6b9d2e610fcede397b4b",
        "869746ef31936f09a93717ee1ef3960f8fb6dd69"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 17 08:36:27 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 17 08:36:27 2021 +0000"
      },
      "message": "runtime: fix potential NULL dereferences am: 869746ef31\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736421\n\nChange-Id: I675fae0d0ea54e2fca000d9e8cc2c88a4d0451bd\n"
    },
    {
      "commit": "869746ef31936f09a93717ee1ef3960f8fb6dd69",
      "tree": "b7c534bc792b8128ee6d53089692e6b5477482c0",
      "parents": [
        "f5690ca22446968e6c28ebb06b1d7451e02e203d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 14 14:13:14 2021 -0700"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 17 08:22:41 2021 +0000"
      },
      "message": "runtime: fix potential NULL dereferences\n\nif `found` or `ret` isn\u0027t found, one or both of them may be NULL. hence,\nwe shouldn\u0027t be unconditionally calling `-\u003ePrettyField()` here.\n\nBug: None\nTest: TreeHugger\nChange-Id: Ia40dd0e726d04945d3dedf5c2beb6dd2cff84c21\n"
    },
    {
      "commit": "20071a3c2d6b63a3f47f6b9d2e610fcede397b4b",
      "tree": "1c52e247ff3a115cb0992d921df0229bcaca6b44",
      "parents": [
        "732f944aebb29a2dfb9da64ecdc67385d877cb23",
        "f5690ca22446968e6c28ebb06b1d7451e02e203d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 16 17:10:22 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 16 17:10:22 2021 +0000"
      },
      "message": "Reject a vdex file if its dex contents are out of date. am: f5690ca224\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1737795\n\nChange-Id: Ic7580def1c7a1984877b1a093f7622b66671c1ff\n"
    },
    {
      "commit": "732f944aebb29a2dfb9da64ecdc67385d877cb23",
      "tree": "6bf28066ed85e965d1bc141abcdac5c3a5a72a7f",
      "parents": [
        "072f6b02a16900fca3be63344572421effbf7f17",
        "b3a4e01448a32b2dc53cad8a981ed7c75d12d2cc"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jun 16 17:09:30 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 16 17:09:30 2021 +0000"
      },
      "message": "odrefresh: Support option to run dex2oat in PVM am: b3a4e01448\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736084\n\nChange-Id: Ib68703fcbbdd1896f3189eabae82ef5ad98eafec\n"
    },
    {
      "commit": "072f6b02a16900fca3be63344572421effbf7f17",
      "tree": "3e46c14034576a30f3ddfc586bf4a0f8f5758c73",
      "parents": [
        "b695240b57b401d2498ab5d16e823e99e8cc0cf8",
        "0be3da60fa382ded4a3f9b714d9da4e22667e15a"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jun 16 17:09:25 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 16 17:09:25 2021 +0000"
      },
      "message": "odrefresh: pass BCP JARs as FDs to dex2oat am: 0be3da60fa\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1721608\n\nChange-Id: I85ad4fe85617eab2aaf782cbdf2ed12ea26631a6\n"
    },
    {
      "commit": "b695240b57b401d2498ab5d16e823e99e8cc0cf8",
      "tree": "ab752c06377a4db0855b307f8d9b806065820794",
      "parents": [
        "dae784562e6135fe3679193786af7830953d4f1a",
        "f667c33fc88356aa80d455430752719aaae57717"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Wed Jun 16 17:09:15 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 16 17:09:15 2021 +0000"
      },
      "message": "Avoid opening BCP jars if the corresponding FDs exist am: f667c33fc8\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1721607\n\nChange-Id: If11495735a3ff383d86853eb85efab117024537a\n"
    },
    {
      "commit": "f5690ca22446968e6c28ebb06b1d7451e02e203d",
      "tree": "1c52e247ff3a115cb0992d921df0229bcaca6b44",
      "parents": [
        "b3a4e01448a32b2dc53cad8a981ed7c75d12d2cc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 16 14:27:34 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 16 16:57:28 2021 +0000"
      },
      "message": "Reject a vdex file if its dex contents are out of date.\n\nThis will make sure the runtime doesn\u0027t think the APK optimization state\nis \"verify\", when at runtime we\u0027ll actually run from the APK\n\nTest: m\nBug: 191245631\nChange-Id: I46e056e52d1f7ff4a4ec8d952f325c54d9efad8f\n"
    },
    {
      "commit": "b3a4e01448a32b2dc53cad8a981ed7c75d12d2cc",
      "tree": "6bf28066ed85e965d1bc141abcdac5c3a5a72a7f",
      "parents": [
        "0be3da60fa382ded4a3f9b714d9da4e22667e15a"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Jun 14 12:48:10 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 16 16:52:52 2021 +0000"
      },
      "message": "odrefresh: Support option to run dex2oat in PVM\n\npvm_exec is an executable to run a command remotely, assuming the code\nis also in the VM. Since the input files may not be available in the VM,\npvm_exec internally takes over the FDs and becomes a file server. In the\nremote execution setup, dex2oat receives the same FD numbers, and relies\non \"authfs\", a FUSE client that talkes to the file server, to translate\nthe read/write.\n\nBy wrapping dex2oat with pvm_exec, this change makes it possible run\ndex2oat remotely, though not necessarily securely. For example, a\ncommand is not a secure interface since it allows unlimited numbers of\ncombination of input paramters (or even allow manipulating the\ncompilation, e.g. by adjusting Java property).\n\nWe\u0027ll need to change the interface later. But in the meantime, this\nchange will allow us to iterate more easily.\n\nBug: 187346876\nTest: 1. Start a PVM with ART and CompOS apex mounted\n      2. /apex/com.android.art/bin/odrefresh --use-compos\u003d$CID \\\n         --force-compile\n      # odrefresh returns successfully (though much slower right now)\nChange-Id: I722e5290246e180a89f6d42d9a6bc10c79dc0d1a\n"
    },
    {
      "commit": "0be3da60fa382ded4a3f9b714d9da4e22667e15a",
      "tree": "3e46c14034576a30f3ddfc586bf4a0f8f5758c73",
      "parents": [
        "f667c33fc88356aa80d455430752719aaae57717"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Jun 14 12:37:03 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 16 16:52:52 2021 +0000"
      },
      "message": "odrefresh: pass BCP JARs as FDs to dex2oat\n\nBug: 187327262\nTest: odrefresh --force-compile  # succeed\nTest: strace  # observed less openat(2) of JARs\n\nChange-Id: I8eec85374bcf3135ec2be3f542bb82dd62fd010d\n"
    },
    {
      "commit": "f667c33fc88356aa80d455430752719aaae57717",
      "tree": "ab752c06377a4db0855b307f8d9b806065820794",
      "parents": [
        "319333f6ea3408b8c99bd9c644f0f34b66fe31b8"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Thu May 27 11:35:44 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 16 16:52:52 2021 +0000"
      },
      "message": "Avoid opening BCP jars if the corresponding FDs exist\n\nWith -Xbootclasspathfds, we already have the FD available in the\nruntime. When loading a BCP oat, it also needs to check the\ncorresponding BCP jar. When the jar\u0027s FD is available, this change\navoids the open by path.\n\nBug: 187327262\nTest: odrefresh --force-compile  # success\nTest: strace  # no more open for such case\n\nChange-Id: I8c488254d9bf923a2e181f578c9ed167cd75335c\n"
    },
    {
      "commit": "dae784562e6135fe3679193786af7830953d4f1a",
      "tree": "b2eec6f9bdc00c3e22a28d5f9bb81912784812f6",
      "parents": [
        "f40f38b5924e9650e9d505f79c12984257d79251",
        "319333f6ea3408b8c99bd9c644f0f34b66fe31b8"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 16 11:49:47 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 16 11:49:47 2021 +0000"
      },
      "message": "odrefresh: temporarily disable test am: 319333f6ea\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1737615\n\nChange-Id: I325c7c1983a8ef892d61017621d24410b4f880cd\n"
    },
    {
      "commit": "319333f6ea3408b8c99bd9c644f0f34b66fe31b8",
      "tree": "b2eec6f9bdc00c3e22a28d5f9bb81912784812f6",
      "parents": [
        "ecaf7d1657d8e92697775d3979ff42c59e5cfc89"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 16 09:19:36 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 16 09:20:25 2021 +0100"
      },
      "message": "odrefresh: temporarily disable test\n\nTest is failing on zygote64.\n\nBug: 191113888\nTest: atest odsign_e2e_tests\nChange-Id: Idf06d0a875d4d3daf3699015ceb92832647ad263\n"
    },
    {
      "commit": "f40f38b5924e9650e9d505f79c12984257d79251",
      "tree": "e6bd3743161e513234b08cecf78531e2fe6ec372",
      "parents": [
        "b967e3c6781283690646148e4de0526607d522f1",
        "ecaf7d1657d8e92697775d3979ff42c59e5cfc89"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Tue Jun 15 16:32:19 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 15 16:32:19 2021 +0000"
      },
      "message": "Fix double close in dex2oat when BCP is passed as FDs am: ecaf7d1657\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736082\n\nChange-Id: I52575a0c82ee757325e3ceb8ee714c9e92e07f54\n"
    },
    {
      "commit": "ecaf7d1657d8e92697775d3979ff42c59e5cfc89",
      "tree": "e6bd3743161e513234b08cecf78531e2fe6ec372",
      "parents": [
        "7f21ebe84b726081874cd2bd3fc8dd1ea39aa2d8"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Jun 14 11:09:21 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 15 16:17:49 2021 +0000"
      },
      "message": "Fix double close in dex2oat when BCP is passed as FDs\n\nBug: 191052821\nTest: Modify odrefresh to pass BCP as FDs to dex2oat. Run w/ --force-compile.\n      # With thix fix, no longer seeing \"fdsan: double-close of file\n      descriptor 24 detected\"\n\nChange-Id: Iac09b06c8e7aa93114896632cdea6c610662455b\n"
    },
    {
      "commit": "b967e3c6781283690646148e4de0526607d522f1",
      "tree": "867fdf002d67c11ba4f63af71fe415ce7a4a0186",
      "parents": [
        "797a323204249b1fadcf3bafab1b56422d6a71d8",
        "7f21ebe84b726081874cd2bd3fc8dd1ea39aa2d8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 15 12:21:45 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 15 12:21:45 2021 +0000"
      },
      "message": "Fix instructions for running target ART gtests in `chroot` with Atest. am: 7f21ebe84b\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1736318\n\nChange-Id: I188807820b7a739cc5f93127b37fe48e8d684426\n"
    },
    {
      "commit": "7f21ebe84b726081874cd2bd3fc8dd1ea39aa2d8",
      "tree": "867fdf002d67c11ba4f63af71fe415ce7a4a0186",
      "parents": [
        "0886d4e7e0243a02c081d6015de88e10f7eb79f5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 14 18:26:11 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 15 12:06:10 2021 +0000"
      },
      "message": "Fix instructions for running target ART gtests in `chroot` with Atest.\n\nWe currently have to manually build `art_chroot` manually before\ninvoking `atest ArtGtestsTargetChroot`, because of build system\nlimitations; adjust the ART testing documentation until we find a way\nto address this build system dependency issue.\n\nTest: Render `README.atest.md` as HTML and check the output manually\nBug: 187416712\nBug: 147820692\nChange-Id: I5c5d13ca49d65b6737fb58bd3f6778a560087739\n"
    }
  ],
  "next": "797a323204249b1fadcf3bafab1b56422d6a71d8"
}
