)]}'
{
  "log": [
    {
      "commit": "b331febbab8e916680faba722cc84b66b84218a3",
      "tree": "35f985b021e476914bfe91492da23fee218014a7",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 16:51:53 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:11:54 2016 +0000"
      },
      "message": "Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\n\nThis reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.\n\nChange-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44\n"
    },
    {
      "commit": "27c6b4890264444e2724972d2aa6c2c9a5bb65bb",
      "tree": "d7fbbd318c75f65eb2680db3739b099bb44ca4c0",
      "parents": [
        "62340033078bcd965e940b8ee390bf07b7867cab",
        "d3e7c6c76f564b58e66010c30b62bb56ef046f2c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:14:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 04 19:14:40 2016 +0000"
      },
      "message": "Merge \"Don\u0027t use native bridge for non zygote-spawn processes\""
    },
    {
      "commit": "d3e7c6c76f564b58e66010c30b62bb56ef046f2c",
      "tree": "bc67f7f152bf1786fbad6f15390e3dec4149a659",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:07:51 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:07:51 2016 +0000"
      },
      "message": "Don\u0027t use native bridge for non zygote-spawn processes\n\n... unless we force it for testing purposes.\n\nBug: 26954924\nChange-Id: Ib4660a35175abb479d0399e18b6194eb04dbc248\n"
    },
    {
      "commit": "df707e406877e9c0426dd051c00933ebb331673e",
      "tree": "db9c96c96d373935a83dda2fafbf3c7e1aef3377",
      "parents": [
        "e3d4ff566f9545114bf9ed72421e49eaf9d37953"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 02 16:56:50 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 03 13:39:19 2016 -0800"
      },
      "message": "runtime: Don\u0027t skip verification for -Xverify:soft-fail\n\nWhen forcing the interpreter into access checks mode,\nmake sure that the regular verification is still run,\ngiving the verifier an opportunity to throw a VerifyError.\n\nIf verification would\u0027ve succeeded (without -Xverify:soft-fail flag),\noverride this and soft-fail, to force the interpreter-with-access-checks to be run\ninstead of the normal faster interpreter.\n\nThis fixes the following run-tests under the interpeter-access-checks:\n* 135\n* 412\n* 471\n* 506\n* 800\n\nBug: 22414682\nChange-Id: I5cb86a8bba71c7af9361a63c0802786c852b857b\n"
    },
    {
      "commit": "4a26f17b055cadc949c3e9fdfa637fe5656339d9",
      "tree": "d3cee26249b5ac72c57a7125ae2a73765bf77d96",
      "parents": [
        "caef579e906abc5c3174ba65e5205ea7fd5c44ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 14:26:18 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 17:49:12 2016 -0800"
      },
      "message": "Remove GetImageRoots read barrier for image relocation\n\nFixes CC assertion that failed if an app image was loaded when the GC\nwas running.\n\nBug: 26786304\nChange-Id: I47bea7b4b947332b57be2e2db604c2c25d92b7e2\n"
    },
    {
      "commit": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\n"
    },
    {
      "commit": "1bc977cf2f8199311a97f2ba9431a184540e3e9c",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "f7fd970244f143b1abb956e29794c446e4d57f46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "message": "Revert \"Load app images\"\n\nFails when a method is duplicated (see test 097-duplicate-method)\n\nBug: 22858531\n\nThis reverts commit f7fd970244f143b1abb956e29794c446e4d57f46.\n\nChange-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20\n"
    },
    {
      "commit": "f7fd970244f143b1abb956e29794c446e4d57f46",
      "tree": "aac1f57ac70747957f609bb46305dfeca87645a1",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 11:16:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 22 15:01:55 2016 -0800"
      },
      "message": "Load app images\n\nSupport in-place patching of the app image based on boot image\nlocation and app oat location. Only loads for art run test so far\nsince we do not automatically generate app images for app installs.\n\nN5 maps launch time (~200 runs):\nBefore: 930ms\nAfter: 878.18ms\nAfter + image class table: 864.57ms\n\nTODO:\nOatdump support.\nStore class loaders as class roots in image.\n\nBug: 22858531\n\nChange-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1\n"
    },
    {
      "commit": "9bdf108885a27ba05fae8501725649574d7c491b",
      "tree": "a4ddf98b6cf10b343f15164f18e7089bc54c29ca",
      "parents": [
        "a92ee11b9b0ed4033efc5982269e3c0a075315e0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:15:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:19:08 2016 +0000"
      },
      "message": "Revert \"Revert \"Write dex files to oat file early.\"\"\n\nThis reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61.\n\nFix linker error (Mac build):\nReplace inline definition of art::ZipArchive::~ZipArchive()\nwith an out-of-line definition in zip_archive.cc to avoid\ndirect reference to CloseArchive() from libart-compiler due\nto inlining. Note that libart is linked against -lziparchive\nbut libart-compiler is not.\n\nChange-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8\n"
    },
    {
      "commit": "1ee101ac001561a40a3b654bab9c62f9369f0350",
      "tree": "13a4b03ad1465349184b932d32af7a4cfb500773",
      "parents": [
        "7997bafd29c483583bcaa3135d958403caef94e3",
        "919f5536182890d2e03f59b961acf8f7c836ff61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Write dex files to oat file early.\"\""
    },
    {
      "commit": "919f5536182890d2e03f59b961acf8f7c836ff61",
      "tree": "8e8b9c330ae9c886611c6e5ae598e21d9b3ea17a",
      "parents": [
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "message": "Revert \"Write dex files to oat file early.\"\n\nThis reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5.\n\nBreaks the Mac build:\n\nUndefined symbols for architecture i386:\n  \"_CloseArchive\", referenced from:\n      ... in oat_writer.o\nld: symbol(s) not found for architecture i386\n\nChange-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e\n"
    },
    {
      "commit": "a8108303b31f76b7cd0292942885585d0f9d9391",
      "tree": "4b24fde686f2fd948212122c0b1e3d1282545f39",
      "parents": [
        "440ef2cbc76d7e2bc76cf5f15b69fc0478d7e853",
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "message": "Merge \"Write dex files to oat file early.\""
    },
    {
      "commit": "fffbee4d158259633ec7b7f712eaf75be86bd4e5",
      "tree": "05b9ae8b23be722cf8c2a6a979cc3706437ecf71",
      "parents": [
        "55380bbe098bace4375d77a2b77d05ef88dfe6f6"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Jan 15 13:09:34 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 18 14:35:14 2016 +0000"
      },
      "message": "Report types loaded during init to the native debugger\n\nThe runtime loads a lot of type before it creates the jit from the\nboot image and from hard coded source code (e.g. primitive arrays).\nThis change emits type information for these types after the jit has\nbeen created. At the same time we remove the type info generation\nthat happens during AOT compilation because that type information can\nbe modified by a class loader at runtime.\n\nChange-Id: Ie5b3b3df9d01c7200a1f670a98d9cbee796234e9\n"
    },
    {
      "commit": "625a64aad13905d8a2454bf3cc0e874487b110d5",
      "tree": "49035d031166ce9fe0c5dd2f4b34157100e1703f",
      "parents": [
        "e1b0f475e851072d0083faf6e07d274e9f1fe6a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 26 14:44:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 12:28:06 2016 +0000"
      },
      "message": "Write dex files to oat file early.\n\nWrite dex files to oat file before we actually open and\nverify them. Instead, open and verify the copies from the\noat file and use these. This way, in the most common case\nof zipped dex files, we have mmapped dex files instead of\ninflated dex files. That reduces the number of dirty pages\nused by dex2oat.\n\nReading /proc/self/statm after we write the oat file for\na compilation of a certain large app on Nexus 5 AOSP build\nwith -j1, three attempts before and after this CL gave\n    before: 346061 189462 6269 26 0 140723 0\n            346189 189450 6269 26 0 140851 0\n            346061 189463 6269 26 0 140723 0\n    after:  346186 185808 23040 27 0 140468 0\n            346186 185819 23040 27 0 140468 0\n            346186 185822 23040 27 0 140468 0\nThese values are in pages (4KiB), so while the \"size\"\n(\u003dVmSize) is essentially unchanged, the \"resident\" (\u003dVmRSS)\nis over 14MiB less and the \"shared\" (i.e. backed by a file)\nis 65.5MiB more. That is, the amount of dirty non-pageable\nmemory used is reduced by about 80MiB.\n\nThe oat file format has changed slightly, the class offset\ntable has been moved from the OatDexFile to its own section.\nThis actually fixes the alignment of these offsets as they\ncould have been unaligned previously, yet accessed as normal\nwith significant performance impact if the kernel has to\nemulate the unaligned access (say, mips).\n\nChange-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a\n"
    },
    {
      "commit": "1452bee8f06b9f76a333ddf4760e4beaa82f8099",
      "tree": "8ffb80498cd8fdff66a4ab272723cf4d4e69e57b",
      "parents": [
        "7f9ea1451bb74055ee5d51ae04fc869faa06cbdd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 06 14:43:04 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jan 11 13:04:49 2016 -0800"
      },
      "message": "Fast Art interpreter\n\nAdd a Dalvik-style fast interpreter to Art.\nThree primary deficiencies in the existing Art interpreter\nwill be addressed:\n\n1.  Structural inefficiencies (primarily the bloated\n    fetch/decode/execute overhead of the C++ interpreter\n    implementation).\n2.  Stack memory wastage.  Each managed-language invoke\n    adds a full copy of the interpreter\u0027s compiler-generated\n    locals on the shared stack.  We\u0027re at the mercy of\n    the compiler now in how much memory is wasted here.  An\n    assembly based interpreter can manage memory usage more\n    effectively.\n3.  Shadow frame model, which not only spends twice the memory\n    to store the Dalvik virtual registers, but causes vreg stores\n    to happen twice.\n\nThis CL mostly deals with #1 (but does provide some stack memory\nsavings).  Subsequent CLs will address the other issues.\n\nCurrent status:\n   Passes all run-tests.\n   Phone boots interpret-only.\n   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute\n       microbenchmark, 5x faster than gcc-compiled goto interpreter.\n   1.6x faster than Clang goto on Caffeinemark overall\n   2.0x faster than Clang switch on Caffeinemark overall\n   68% of Dalvik interpreter performance on Caffeinemark (still much slower,\n       primarily because of poor invoke performance and lack of execute-inline)\n   Still nearly an order of magnitude slower than Dalvik on invokes\n       (but slightly better than Art Clang goto interpreter.\n   Importantly, saves ~200 bytes of stack memory per invoke (but still\n       wastes ~400 relative to Dalvik).\n\nWhat\u0027s needed:\n   Remove the (large quantity of) bring-up hackery in place.\n   Integrate into the build mechanism.  I\u0027m still using the old Dalvik manual\n       build step to generate assembly code from the stub files.\n   Remove the suspend check hack.  For bring-up purposes, I\u0027m using an explicit\n       suspend check (like the other Art interpreters).  However, we should be\n       doing a Dalvik style suspend check via the table base switch mechanism.\n       This should be done during the alternative interpreter activation.\n   General cleanup.\n   Add CFI info.\n   Update the new target bring-up README documentation.\n   Add other targets.\n\nIn later CLs:\n   Consolidate mterp handlers for expensive operations (such as new-instance) with\n       the code used by the switch interpreter.  No need to duplicate the code for\n       heavyweight operations (but will need some refactoring to align).\n   Tuning - some fast paths needs to be moved down to the assembly handlers,\n       rather than being dealt with in the out-of-line code.\n   JIT profiling.  Currently, the fast interpreter is used only in the fast\n       case - no instrumentation, no transactions and no access checks. We\n       will want to implement fast + JIT-profiling as the alternate fast\n       interpreter.  All other cases can still fall back to the reference\n       interpreter.\n   Improve invoke performance.  We\u0027re nearly an order of magnitude slower than\n       Dalvik here.  Some of that is unavoidable, but I suspect we can do\n       better.\n   Add support for our other targets.\n\nChange-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc\n"
    },
    {
      "commit": "0de47bb78a53dbae5da77badafb95f03e4bc1138",
      "tree": "cabd1fb24a7d04a5d592f184d442f44a28edbb2d",
      "parents": [
        "8566a91502db625ff9428a3c2418714488ecd5d9",
        "10edbb159afae232817c86fc06a6801349f05bae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 11 16:34:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 11 16:34:49 2016 +0000"
      },
      "message": "Merge \"ART: Use libopenjdkd\""
    },
    {
      "commit": "10edbb159afae232817c86fc06a6801349f05bae",
      "tree": "ab487114d0f5e906471fa5459a075b3648b72a8e",
      "parents": [
        "fcad0099eeceb6f2c09a6de28d8e8f05dab69ed5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 06 17:59:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 08 09:48:43 2016 -0800"
      },
      "message": "ART: Use libopenjdkd\n\nLoad libopenjdkd in debug mode. Add dependencies for libopenjdkd\nin the Makefiles.\n\nBug: 26421792\nChange-Id: Ie64cd56f73901b9c7645e46384d753752bbd5351\n"
    },
    {
      "commit": "7ede3dd40e2f7da3e3073cc355312021c31820b3",
      "tree": "8ecf4374076c710a128bd47d3fa48e60a1a253e8",
      "parents": [
        "a90d8bc3a3772877f4490d0509d53053069e5b55",
        "5e2b971e468ca73a8e10a120730b3b6f17fad408"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 07 11:45:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 11:45:11 2016 +0000"
      },
      "message": "Merge \"Assume the profile file was created before saving.\""
    },
    {
      "commit": "b94a8906b82ed05ccf67be68d9d329b85c514d46",
      "tree": "53c9810ed6449e4bc00472e47751e104c8cdf6ad",
      "parents": [
        "bf157c3f50ab4790bae5a763c677e174b80e7f9a",
        "fb6db4c841e928feb35a985923fe2d41848f8f31"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 07 02:21:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 02:21:52 2016 +0000"
      },
      "message": "Merge \"Add systrace output to runtime shutdown\""
    },
    {
      "commit": "fb6db4c841e928feb35a985923fe2d41848f8f31",
      "tree": "59130aec4e26c0ca42aac3f800ef6bef85550cd8",
      "parents": [
        "5af190cb6f11a651afe0f0abc5ba0844246970d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 17:23:25 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 18:20:05 2016 -0800"
      },
      "message": "Add systrace output to runtime shutdown\n\nHelp debug why am command shutdown is slow.\n\nFindings:\n~200ms spent in deleting thread list on N5.\n\nBug: 26351700\nChange-Id: Icb59390a5267ae8bade4ced12252743c48206bb1\n"
    },
    {
      "commit": "205b7624e434050125ada92a318cdc2655ac7b4a",
      "tree": "fc0742acf17f434b72eaf9eb355711636060033a",
      "parents": [
        "5af190cb6f11a651afe0f0abc5ba0844246970d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 15:47:09 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 15:47:44 2016 -0800"
      },
      "message": "Address some intern table comments\n\nChange-Id: I7ffaa463272015c2924ba03e006041daee498ad4\n"
    },
    {
      "commit": "ea0831f60d26e3297e6463634a9fbb6384f00661",
      "tree": "6b970dced071048d59d1857e4703521d76566f99",
      "parents": [
        "664d7cfba0e734ba8917c260e424ea559b7e8f9f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 29 13:17:37 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 10:17:01 2016 -0800"
      },
      "message": "Re-enable adding intern table to image\n\nChanged intern table to have a stack of tables similarily to\nClassTable. Adding an image intern table adds to the front of the\nintern table stack. Also some cleanup.\n\nBug: 26317072\n\nChange-Id: I7bbf9485b5dbbbf3707fed21e29de3beccfb8705\n"
    },
    {
      "commit": "1c1a342ba4e029ea1868a41ed0310756b7d78f45",
      "tree": "7310ba40021c1b6de0a1d12769d662071ead3cec",
      "parents": [
        "68ead6495715c44c60e4faa27db8255e3ba7491b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 05 14:13:00 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 05 15:35:51 2016 -0800"
      },
      "message": "Fix multi-image TODOs in class linker, runtime, and oat file.\n\n- Modified SanityCheckArtMethodPointerArray in class linker\n- Put back warnings in OatFile::GetOatDexFile\n- Reinstated ImageSpace VerifyImageAllocations in Runtime::Init\n\nBug: 26317072\n\n(cherry-picked from commit 0dfef949bb824accde27f8cfe1b233ec9e087355)\n\nChange-Id: I3bdb8f87d885213795c82c41e5095fec6daf00c4\n"
    },
    {
      "commit": "5e2b971e468ca73a8e10a120730b3b6f17fad408",
      "tree": "5168766339acfd7c61852ca38595fe3459b2eb81",
      "parents": [
        "b7371a5517f78f61759f7e6124f2d957d974d9cd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 18 14:10:00 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 04 19:01:13 2016 +0000"
      },
      "message": "Assume the profile file was created before saving.\n\nbug: 26080105\nChange-Id: I9969a4abd8533614922076551fcbae2cdf695525\n"
    },
    {
      "commit": "8994a04162a92759f8ec531d18ee8901145dfda0",
      "tree": "802550252d5ad02060abf66fbbbc43530b09cfcb",
      "parents": [
        "1e65a78577ed71f5e3d79edaa0e6735ea4a3371b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 19:03:17 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 12:41:29 2015 -0800"
      },
      "message": "Revert \"Revert \"ART: Fix up some multi-image cases\"\"\n\nThis reverts commit de38b797c3e5ba3ee44c480db7093386975c51eb.\n\nFix up imgdiag for std::string and multi-image.\n\nBug: 26317072\nBug: 26320300\n\nChange-Id: I94ce9528e9fea6fb3231a70c32db02d567143db9\n"
    },
    {
      "commit": "de38b797c3e5ba3ee44c480db7093386975c51eb",
      "tree": "66fdb4f09ffe5d62f491f53b9d311ea3e7349f71",
      "parents": [
        "288b1e9a0dddfb91e85067fe81de55174f313c7c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "message": "Revert \"ART: Fix up some multi-image cases\"\n\nFails imgdiag_test on device.\n\nBug: 26317072\nBug: 26320300\n\nThis reverts commit 288b1e9a0dddfb91e85067fe81de55174f313c7c.\n\nChange-Id: Iccd05827b0630281b6f959331eaa4202526df78e\n"
    },
    {
      "commit": "288b1e9a0dddfb91e85067fe81de55174f313c7c",
      "tree": "3b8926db8ed6a575975540694c2bc81b4197b7de",
      "parents": [
        "6147f7520a1279b58d58c5d73a707dea2fbdd376"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 10:41:49 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 19:21:26 2015 -0800"
      },
      "message": "ART: Fix up some multi-image cases\n\nChange the auto-generated multi-image names to include the path\ncomponents from the first image, as well as prefix them with the\nfirst image\u0027s name to disambiguate. This fixes vogar-style usage.\n\nFix an out-of-bounds issue in dex2oat when dex files are missing.\n\nForbid generating or patching multi-image parts when loading images.\nInstead just fail loading them.\n\nRemember ImageSpace instances that have been added while trying to\nload a multi-image set. Remove all loaded instances when the overall\nloading process fails.\n\nRefactor the dex location adaptation into ImageSpace. Reuse the code\nin the Runtime path for fallback, so that all dex files can be found\ncorrectly.\n\nFix an out-of-bounds access in OatFileAssistant in fallback mode.\n\nPartially reverts d895961d07a1d320b29f2045a48bc5a1944a4d3c. Push an\nactual image name, that is, something with an art extension, to\nthe vogar scripts.\n\nPartially reverts c525604b313bb77a2077e1fec43dfab76cb1b9b1. Test\n119-noimage-patchoat works again.\n\nBug: 26317072\nBug: 26320300\nChange-Id: I3f05fa77f22a2b9ca54c3105ffc53646c1928604\n"
    },
    {
      "commit": "7f65b4669c52976cd5713dae47b901707ed77110",
      "tree": "b1c6399751c98babd3839bd4d5ff4a1f6a5c274c",
      "parents": [
        "b7f644b3ef0b23350d83f10612b80e27112f2478",
        "da6e49016dc37704f45b13217a8c6f8e726ab8e1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 02:43:58 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 24 02:43:58 2015 -0800"
      },
      "message": "Merge \"Save profile information in a separate thread.\" am: 58b2329de7\nam: da6e49016d\n\n* commit \u0027da6e49016dc37704f45b13217a8c6f8e726ab8e1\u0027:\n  Save profile information in a separate thread.\n"
    },
    {
      "commit": "58b2329de74a73d2f0a7ed001e50cc39df33d9da",
      "tree": "7c8b322acd0a0c0b0d7fd6467df8ff68cf7844fa",
      "parents": [
        "875773770ae34c623153aac3941828a9e3831f14",
        "4d77b6a511659f26fdc711e23825ffa6e7feed7a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 10:38:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 24 10:38:45 2015 +0000"
      },
      "message": "Merge \"Save profile information in a separate thread.\""
    },
    {
      "commit": "4d77b6a511659f26fdc711e23825ffa6e7feed7a",
      "tree": "7ac013467a20fcdf64cb6cf4c79a8ff67dc7690a",
      "parents": [
        "66f55237679db90cb0a0a265043a787932b466f8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 01 18:38:09 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 12:02:12 2015 +0200"
      },
      "message": "Save profile information in a separate thread.\n\nPreviously we would save the profiling information only when the app\nwas sent to background. This missed on an important number of updates\non the jit code cache and it didn\u0027t work for background processes.\n\nBug: 26080105\n\nChange-Id: I84075629870e69b3ed372f00f4806af1e9391e0f\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "aa944b9d4d447d2746f13327084a19daebf83ee4",
      "tree": "086244a8f5758a736e21d59ac41eea931eb94119",
      "parents": [
        "d255fe5c11ff0fa13a2ca9f73c7c43a290dc370e",
        "d5bbadf44032510b1ce12d9e5f2adad9234cf6b9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 21 23:10:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 21 23:10:49 2015 +0000"
      },
      "message": "Merge \"Use shared namespaces for bundled apps\""
    },
    {
      "commit": "d5aeb13585f682f9090b76eb9d5878bec801f9af",
      "tree": "ae17e7b970d6b6a87db8b0e3bc57ea56e88898da",
      "parents": [
        "aa0fab302b762c776ecda4a5dd80625ccd64bde3",
        "d264bab81efdc40500b41620d65a8b3930854719"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 09:50:04 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 21 09:50:04 2015 +0000"
      },
      "message": "Merge \"Pass down to the runtime the application code paths.\" am: 115a02b737\nam: d264bab81e\n\n* commit \u0027d264bab81efdc40500b41620d65a8b3930854719\u0027:\n  Pass down to the runtime the application code paths.\n"
    },
    {
      "commit": "115a02b737dd5f4d485b2f6c359e02988df66b83",
      "tree": "92326bbe40b2541aac8096312d25791a329f7c28",
      "parents": [
        "2f125e3c7ab02cbbbcede533dc53a454a439be13",
        "66f55237679db90cb0a0a265043a787932b466f8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 09:43:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 21 09:43:09 2015 +0000"
      },
      "message": "Merge \"Pass down to the runtime the application code paths.\""
    },
    {
      "commit": "d5bbadf44032510b1ce12d9e5f2adad9234cf6b9",
      "tree": "d47fc3cbe11567db0e539eaa818b07e569eeed0a",
      "parents": [
        "2f125e3c7ab02cbbbcede533dc53a454a439be13"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 14:08:18 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 23:38:06 2015 -0800"
      },
      "message": "Use shared namespaces for bundled apps\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/26165097\nBug: http://b/22548808\nChange-Id: Ia90b603a0ca97194618b82fb191d6790a4b1f281\n(cherry picked from commit 986f650d8b552e8b7dbebef1f50f015e7850edfc)\n"
    },
    {
      "commit": "df0de0459ccd661c1c79aec3035dc64d4997ad3d",
      "tree": "49d42ae2892f44b9b8cac6f163fbbaf042874b05",
      "parents": [
        "ae1dec9318a4b2a873954a26ac8bf9d210d3a577",
        "986f650d8b552e8b7dbebef1f50f015e7850edfc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 00:49:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 19 00:49:07 2015 +0000"
      },
      "message": "Merge \"Use shared namespaces for bundled apps\""
    },
    {
      "commit": "471fb5beb826a8dead12600bffb8729a9ced9c47",
      "tree": "c3c63e9069f733b633878a919fbb45cdf0e7bcab",
      "parents": [
        "db92e153c2c29b7f0b59e5f6cc9d0abbdcdce635",
        "88e3342e07d607c07d886eebf195e2d0359067ed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 17 23:38:34 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 17 23:38:34 2015 +0000"
      },
      "message": "Merge \"Add some dumping when SIGQUIT for the JIT.\" am: bdd12e0e04\nam: 88e3342e07\n\n* commit \u002788e3342e07d607c07d886eebf195e2d0359067ed\u0027:\n  Add some dumping when SIGQUIT for the JIT.\n"
    },
    {
      "commit": "986f650d8b552e8b7dbebef1f50f015e7850edfc",
      "tree": "0862ac202e46c1fa434d025f344d7fc0b749bd35",
      "parents": [
        "6280ef88a9231d2a14f2b0bbe6d39770c994787d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 14:08:18 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 17 11:33:06 2015 -0800"
      },
      "message": "Use shared namespaces for bundled apps\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/26165097\nBug: http://b/22548808\nChange-Id: Ia90b603a0ca97194618b82fb191d6790a4b1f281\n"
    },
    {
      "commit": "66f55237679db90cb0a0a265043a787932b466f8",
      "tree": "50784132be869b47562e8ce41ea318d79c6cf6ab",
      "parents": [
        "fb9f4ad455eced3a07bef1d4772ab1fe34ec133b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 08 15:09:10 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 17 12:38:27 2015 +0200"
      },
      "message": "Pass down to the runtime the application code paths.\n\nWhen registering the app with the runtime the framework needs to pass\ndown the list of application code paths. This will be used by JIT to\nknow what profile info to persist.\n\nThis fixes the reliance on OatFileManager::GetPrimaryOatFile which may\nproduce inconsistent results based on external factors (i.e. class path\norder or failing to compile the first dex file from the class path)\n\nBug: 26080105\nChange-Id: Iadcebd2684fcd48569e8f76ef21bd4d117fedc05\n"
    },
    {
      "commit": "aee2156e308f3f346ac4df76ba1d33ee9b11be84",
      "tree": "15873ce5421d8a3856a6049c715d61a5136cae20",
      "parents": [
        "3b0ec017185a6d694f5041e79cc7a85d51943cff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:39:44 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:50:27 2015 +0000"
      },
      "message": "Add some dumping when SIGQUIT for the JIT.\n\nChange-Id: Iad68bdc8a4ab53e810feb3bc8507b7f42e79b1f7\n"
    },
    {
      "commit": "e86c0e62d560f6f707b97eaae495d8aca78ffbcb",
      "tree": "a37e03e5a39c5c3767c73e08b873f624bdc2081d",
      "parents": [
        "85f2c5fff79b15611e060803f4c5cf1ccb8cbdd4",
        "b38da83736ff325719f18424177022d68e283964"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 06:46:08 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 14 06:46:08 2015 -0800"
      },
      "message": "Merge \"Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\" am: 8cf97d7295\nam: b38da83736\n\n* commit \u0027b38da83736ff325719f18424177022d68e283964\u0027:\n  Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\n"
    },
    {
      "commit": "8cf97d729592774afa495717626ac4e4525a499f",
      "tree": "0f00febf35d851fdd63a51c4ef7786f4f26c9f9b",
      "parents": [
        "84c3d48a6ce4d2c9396364973b3d7f43893ab468",
        "226501b317e148aa8a8983355e85acb59c1eee83"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\""
    },
    {
      "commit": "f6082992319d3d71ff64411fb3083e4da8dd60cc",
      "tree": "9fa329833faac3acfa80123ce60e63c56e604452",
      "parents": [
        "155579d1a3ea50d4cec91d90c1d37c3c4f84452d",
        "d66c8621610dc18d324132c8e5b081520f719777"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 14 13:04:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 14 13:04:04 2015 +0000"
      },
      "message": "Merge \"Special case system_server to not create the JIT code cache.\""
    },
    {
      "commit": "3e381723658e8a0bce24071b53f57bf22af76a1e",
      "tree": "68d0a601981507b38a1fbcfde6e20c8247c0bbb7",
      "parents": [
        "44409d33e05cd2f73d69e0a98daa5c9e2fe38089"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 17:40:11 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 13:28:00 2015 -0800"
      },
      "message": "Port isolated namespace changes over to OpenJdkJvm.cc\n\nBug: http://b/22548808\nChange-Id: I6f11102e828ee5ef4b5107590c598fd0db787fe1\n"
    },
    {
      "commit": "44409d33e05cd2f73d69e0a98daa5c9e2fe38089",
      "tree": "19876c9e094f163fe9cc8549e64e6ebb92453c39",
      "parents": [
        "900805d75bdc63f3f6d612a6076a5c49673ab35d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 11 14:18:55 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 13:28:00 2015 -0800"
      },
      "message": "Use isolated namespaces for app native libs\n\nLinker namespaces provide necessary level\nof isolation for application native libraries.\n\nThe native libraries will no longer be able to\nmistakenly depend on platform private libraries\nlike /system/lib/libssl.so\n\nThis change creates one namespace for each instance\nof class-loader and uses it when loading native libraries.\n\nFor backwards compatibility with older apps we keep\nusing default namespace and LD_LIBRARY_PATH if target\nsdk version is \u003c\u003d 23. (currently set to 0 for testing)\n\nBug: http://b/22548808\nChange-Id: I64e97af7450fbf7e3740ccddda96bb2f7c52e03b\n(cherry picked from commit f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc)\n"
    },
    {
      "commit": "98d46d2d287c8081995517770392a21b4d59d2e9",
      "tree": "ed8a1ce97cca924207da598fe7333c4ae7083f77",
      "parents": [
        "277da370dd517af0d6a27bef3b86d5f259feda62",
        "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "message": "Merge \"Use isolated namespaces for app native libs\""
    },
    {
      "commit": "226501b317e148aa8a8983355e85acb59c1eee83",
      "tree": "e580485b79123403b7436793e1fdea40cdb585ea",
      "parents": [
        "66278646b5b332142d1474703ac7d945dfbf7c78"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:41:31 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 18:41:35 2015 +0000"
      },
      "message": "Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\n\nThis reverts commit 2306ae0d412cc53cbf64877e4a8c37292dd907d8.\n\nChange-Id: I50640009c2fac88ea703812b76549a0e8a6d7584\n"
    },
    {
      "commit": "d66c8621610dc18d324132c8e5b081520f719777",
      "tree": "c2de3aeaa995e57b5d45ea9646ac9be5f6ac6529",
      "parents": [
        "70cdba196cef4cfd7955f331a892f6dbe8cd073e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 14:59:16 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 15:00:16 2015 +0000"
      },
      "message": "Special case system_server to not create the JIT code cache.\n\nChange-Id: I34485c709b0c70b8d9c34bebcf399781aebaf11b\n"
    },
    {
      "commit": "d38b1b715733b09341d3d37b1247f741e00d62d9",
      "tree": "d9854e1abcee4eff6dbcb485c3618357ec1428fc",
      "parents": [
        "0fa75b6c62e408d9ca2a4ded7878adfdd8b91312",
        "f6e504d5ff301048f545905c01c4734f2b583713"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 06:10:46 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 06:10:46 2015 -0800"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\" am: 66278646b5\nam: f6e504d5ff\n\n* commit \u0027f6e504d5ff301048f545905c01c4734f2b583713\u0027:\n  Revert \"Enable profiled guided compilation in dex2oat\"\n"
    },
    {
      "commit": "66278646b5b332142d1474703ac7d945dfbf7c78",
      "tree": "eedcbf057dabe78c46e63c645ff833a657a7187d",
      "parents": [
        "919b6d5fc9b18dd7c00f5fa8eb90411b2ca8998b",
        "2306ae0d412cc53cbf64877e4a8c37292dd907d8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\""
    },
    {
      "commit": "2306ae0d412cc53cbf64877e4a8c37292dd907d8",
      "tree": "fcda284846a6a468e39aec2783812d2d1129a35e",
      "parents": [
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nThe test still have some flakiness in it which didn\u0027t reproduce locally.\n\nThis reverts commit 500c9be1f261a8a95ae7a25f4f8084f43207f313.\n\nChange-Id: I132aff62bf03c2f926aafde6869707573bae9b36\n"
    },
    {
      "commit": "22df2db1b65975fcb21b807dc900ffa2a8cbd17f",
      "tree": "4425444bb262ab489d7f54a2c3ca988d493db779",
      "parents": [
        "bdb859f2e07dbb16e68f6ada1caeea5a558ade64",
        "f17b1e3158da8deec4a3df75055402d82326780b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 03:45:48 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 03:45:48 2015 -0800"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\" am: a79c717fd4\nam: f17b1e3158\n\n* commit \u0027f17b1e3158da8deec4a3df75055402d82326780b\u0027:\n  Enable profiled guided compilation in dex2oat\n"
    },
    {
      "commit": "a79c717fd4de0d7361a51bee1e3cf4f2ff5f085a",
      "tree": "7a2a08b0be2a350c612d3afc23835a10580c80f6",
      "parents": [
        "bf479be3a9b25b2126d2c73a3267f18ee52811fb",
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\""
    },
    {
      "commit": "7d2b04c227b73257d7c282ca9f7147418091e9f6",
      "tree": "3dd88f5b7def624238d06e21c751581650ce0410",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 20:00:26 2015 -0800"
      },
      "message": "Skip DumpForSigQuit if debugger is active\n\nOtherwise, the SIGQUIT dumping may get blocked on the mutator lock\nand freeze the debugger.\n\nFuture work: Ideally we want to dump what we can instead of nothing.\n\nBug: 26118154\n\n(cherry picked from commit 0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc)\n\nChange-Id: I28e5352dab3b8abce0b39850e3e58282ae454b51\n"
    },
    {
      "commit": "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc",
      "tree": "5f07f3ea531240643f4f637c9d3abbad6feafa52",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 11 14:18:55 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 17:25:14 2015 -0800"
      },
      "message": "Use isolated namespaces for app native libs\n\nLinker namespaces provide necessary level\nof isolation for application native libraries.\n\nThe native libraries will no longer be able to\nmistakenly depend on platform private libraries\nlike /system/lib/libssl.so\n\nThis change creates one namespace for each instance\nof class-loader and uses it when loading native libraries.\n\nFor backwards compatibility with older apps we keep\nusing default namespace and LD_LIBRARY_PATH if target\nsdk version is \u003c\u003d 23. (currently set to 0 for testing)\n\nBug: http://b/22548808\nChange-Id: I64e97af7450fbf7e3740ccddda96bb2f7c52e03b\n"
    },
    {
      "commit": "0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc",
      "tree": "bb82300941265c6f9093b699c5d4b8d75b97f827",
      "parents": [
        "a84784cab1021cb4b432dde2e4a7f421f9717cf0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "message": "Skip DumpForSigQuit if debugger is active\n\nOtherwise, the SIGQUIT dumping may get blocked on the mutator lock\nand freeze the debugger.\n\nFuture work: Ideally we want to dump what we can instead of nothing.\n\nBug: 26118154\nChange-Id: I365612a3a34ca6d3215892e6c54b649b93365c80\n"
    },
    {
      "commit": "500c9be1f261a8a95ae7a25f4f8084f43207f313",
      "tree": "e36173ca0ea9dfa88e6e605f156c3992414d7d1b",
      "parents": [
        "836ee764c86892aff1dca6b0f8b27e32c7374cc7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 15:59:14 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 10 17:34:06 2015 +0000"
      },
      "message": "Enable profiled guided compilation in dex2oat\n\n- add parsing of the profile info saved during JIT.\n- don\u0027t compile methods which are not part of the profile info.\n- delete old profile hooks.\n- add test for reading/writing profile. The test is disable in:\n   * interpreter modes: the test needs JIT.\n   * no-dex2oat/no-prebuild: we only save profiling info for the primary\n     oat file. In these modes we don\u0027t create oat files and thus nothing\n     is saved.\n\nBug:26080105\n\nChange-Id: Ifdc63dc9d4b537fc79e54c3edc3ae3a462bc30fb\n"
    },
    {
      "commit": "8701fc20130939b9a11f801992607daee7f70871",
      "tree": "e998ab6d3aab4e8dfd36f999ca216b07eecb609e",
      "parents": [
        "7c21c7cb329990fed53e9878ef2479e3009bf286",
        "0b81f1715d6af9f98f982d6511e48973aa5a836a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "message": "Merge \"Allow initializing runtime with parsed options.\" am: e0d25b156e am: 2433d4e17c\nam: 0b81f1715d\n\n* commit \u00270b81f1715d6af9f98f982d6511e48973aa5a836a\u0027:\n  Allow initializing runtime with parsed options.\n"
    },
    {
      "commit": "88b2b80aed15bb1f931cddd40e44ca525ef10018",
      "tree": "04b2f9d27863cd469dae8050335f197496f24ff2",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 14:19:04 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 07 12:38:21 2015 +0000"
      },
      "message": "Allow initializing runtime with parsed options.\n\nNeeded by upcoming refactoring of dex2oat to allow\nearly writing of dex files to the oat file.\n\nChange-Id: Ia13c26132846801522f181f51f64035d625e8416\n"
    },
    {
      "commit": "acb3040aa9d33b71c3db43d577cee96fd3a4474b",
      "tree": "4208658c416583c91e10045188706397b2fd3ad5",
      "parents": [
        "81b4f93407fe0b656a756b6c33c30093cab8a001",
        "ef769dc0eaacda0e2be4ad485610e86879c4fe76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 03 19:42:35 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 03 19:42:35 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\" am: 68cebffee2 am: e6527ffc11\nam: ef769dc0ea\n\n* commit \u0027ef769dc0eaacda0e2be4ad485610e86879c4fe76\u0027:\n  Revert \"Enable profiled guided compilation in dex2oat\"\n"
    },
    {
      "commit": "9fdb129b90c9a985f606f9d95627b4852171dc11",
      "tree": "c7b1e1da1450f61a504cdf6e21cda62541e93ee7",
      "parents": [
        "57989d6f7292155f4d91ce423cede17d04dd9343"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 22:44:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 23:00:53 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nTest has flakes:\n\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     string: \u0027��gy�\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     input: \u0027\u003c0x80\u003e 0xd8 0x67 0x79 0x8e 0x7f\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     in call to NewStringUTF\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)\n\nThis reverts commit 27e17fd81cc30e16e86c9c15498cae7f920c9dfe.\n\nChange-Id: Id224b5970c3620c4c71fc0d39ed4a2e4755e5f29\n"
    },
    {
      "commit": "7fa9723f95ebffa0a93b98a22d6700741b7ff663",
      "tree": "88c863d9916f1bf8a99815bd0dd87d45389954e6",
      "parents": [
        "ba5db10147cfbbe3f943fd5340b0a11b45bacb86",
        "4c4f22e5d4d9bf20f2d75e284473262331a5cf94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 19:16:23 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 02 19:16:23 2015 +0000"
      },
      "message": "Merge \"ART: Refactor oat_file.h/cc for better maintainability\" am: dbec5e71e0 am: 98acd60161\nam: 4c4f22e5d4\n\n* commit \u00274c4f22e5d4d9bf20f2d75e284473262331a5cf94\u0027:\n  ART: Refactor oat_file.h/cc for better maintainability\n"
    },
    {
      "commit": "dbec5e71e0108cff373dce9e315a95a0187bc14f",
      "tree": "abd562c94736c487034ebd89d7cdd3a3fcf776cf",
      "parents": [
        "c1c2ce460b30940a4f4ce39c688f7b3d080d90f8",
        "049cff0ed5e28aa17a17e456efe3121b6d58910f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "message": "Merge \"ART: Refactor oat_file.h/cc for better maintainability\""
    },
    {
      "commit": "049cff0ed5e28aa17a17e456efe3121b6d58910f",
      "tree": "995c2cf8359f9638c6a5832482e4e5365a8f25c6",
      "parents": [
        "f4c539395244ccfc14aebaf53fdc1122287f65a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 01 23:27:12 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 10:30:28 2015 -0800"
      },
      "message": "ART: Refactor oat_file.h/cc for better maintainability\n\nRefactor the code so that generic oat file initialization (checking\nART symbols etc) is common between dlopen and ART\u0027s ElfFile\nimplementation. Reduce methods and fields exposed in the oat_file\nheader.\n\nChange-Id: I5bf65dd8b7047a007c6bf435b55bdde306595e8d\n"
    },
    {
      "commit": "b70e694cdaf520eeea6471e8916e3e487f89cd48",
      "tree": "08bbf82184c71e366139a4e63dfba2131d72e289",
      "parents": [
        "94821c6d12c522c816cf04d43b135f2d5bafa0ca",
        "ccc2848dd1fd9e7291fe2b23a32d5776dd5001f9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 02 16:44:11 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 02 16:44:11 2015 +0000"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\" am: ec92d4f902 am: ed3a23d4aa\nam: ccc2848dd1\n\n* commit \u0027ccc2848dd1fd9e7291fe2b23a32d5776dd5001f9\u0027:\n  Enable profiled guided compilation in dex2oat\n"
    },
    {
      "commit": "27e17fd81cc30e16e86c9c15498cae7f920c9dfe",
      "tree": "96b03ed3671236b696e25e0671e3d6f27604c035",
      "parents": [
        "47229aa5848df7d45578dbdd9285f57dfa9399a8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 15:59:14 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 02 16:17:21 2015 +0000"
      },
      "message": "Enable profiled guided compilation in dex2oat\n\n- add parsing of the profile info saved during JIT\n- don\u0027t compile methods which are not part of the profile info.\n- delete old profile hooks\n\nChange-Id: I45a13c3aeb36265d335e57cd160b9ea0fab3cbb5\n"
    },
    {
      "commit": "4b6c01b2cebd08762f8880b4ca2dab07942b9e0e",
      "tree": "9f920b7fda2843fe0571df7f263f8eb5191975e6",
      "parents": [
        "cc3b18a0366bbf508c38fa32ea9dc84ae582d171",
        "829d8f4435623e8995b7e6fe0bfde23cd6893458"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 16:37:41 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 25 16:37:41 2015 +0000"
      },
      "message": "Merge \"Save jit profiling info to file.\" am: e8bc4ec44a am: 449f62e059\nam: 829d8f4435\n\n* commit \u0027829d8f4435623e8995b7e6fe0bfde23cd6893458\u0027:\n  Save jit profiling info to file.\n"
    },
    {
      "commit": "31f2c155975c5794d481df03eb0947cb48d2c6b5",
      "tree": "b0ed3a2235fc115f73060ab4b51bda31e3ada596",
      "parents": [
        "22c20ef131812a6e7ff01f8c57ffe1eb0942fc39"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 23 17:56:15 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 24 19:31:16 2015 +0000"
      },
      "message": "Save jit profiling info to file.\n\nCurrently saves only the hot method references and omits the inline\ncache.\n\nChange-Id: I79e91f855f6b52dc19a9a86662604f2eee16613c\n"
    },
    {
      "commit": "0871cd77724873c9a8c58f04168e360afd787ab0",
      "tree": "0529563706e9256b3f2bb03dd97ec372fddcd9c8",
      "parents": [
        "07bd78b150ad0d12df38f5868bb49cb03e98f254"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Nov 20 16:00:31 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 23 10:52:50 2015 +0000"
      },
      "message": "Switch init order of WellKnownClasses and NativeMethods\n\nNative methods need to be loaded before initializing java.lang.Thread\nclass, make sure we do that first.\n\nBug: 25760806\n\n(cherry picked from commit 321f0cdf07e09335cad13a96de35c28795880535)\n\nChange-Id: I5f3f7819f660f9ce472a96a13201ab09950e92e3\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\n"
    },
    {
      "commit": "0f0d5f370dca8bbdb97c61ea30e1b0476ee7749a",
      "tree": "d61c266ca2f296d560fa5a02f45554f29faaf45f",
      "parents": [
        "31c0d484c1f492909c4843c29c08c701f5b6eae9",
        "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 19 06:27:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 06:27:53 2015 +0000"
      },
      "message": "Merge \"ART: Change Init{From,Without}Image to return bool\""
    },
    {
      "commit": "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d",
      "tree": "eb963403d06cad9ff2569f669ef714425d40c893",
      "parents": [
        "3ce45f4e6abd725407a539521f69959a6ac5a9c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 17 11:52:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 18 22:26:39 2015 -0800"
      },
      "message": "ART: Change Init{From,Without}Image to return bool\n\nRewrite some CHECKs to return false. For a common failure (missing)\nimage, this improves the abort (as it\u0027s not a runtime abort with\nlots of stack traces anymore).\n\nChange-Id: I717b1db74950267ced0ad3bafa1aed1693680062\n"
    },
    {
      "commit": "d7b3c7f0044bc5d120cd6d516866ab399489b4e7",
      "tree": "14e6a0444b3b50094971afcee7cecc483b5b95f2",
      "parents": [
        "472cb6bc8ae71db56558c5ab42c4bbde2cbd6daf"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 09:49:10 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 12:45:39 2015 +0000"
      },
      "message": "Rename native library.\n\nChange-Id: I3b89059a91ebb70ee5007a03d5dd237f6bff1251\n"
    },
    {
      "commit": "ba69a51724d33444064443e456ce78b71db2fd16",
      "tree": "a7e1b95026fb455077a4faeffebb76c4ff8d0d7e",
      "parents": [
        "f5dd91e0461b5bb0f401a51dee39f92d52b375e7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 17 13:50:21 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 18 10:50:47 2015 +0000"
      },
      "message": "Fix bogus DCHECK and rename DidForkFromZygote.\n\nThe method can also be called for non-zygote forked processes.\n\n(cherry picked from commit 9d157e48e0abc48f08fd98e4c5e918d029c1b84c)\n\nChange-Id: Id4f57b77c1a7f802f80e066afcf30afecc198bfc\n"
    },
    {
      "commit": "787ae8eb018d46b4b464e3a7c8de37d9262deb61",
      "tree": "afcc49dca1996bddf9d63640cc0b208ca8ca2bf5",
      "parents": [
        "a04f57badca0a9211d45eb7bde44c1d1e8f159ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 11:32:24 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 18 10:11:50 2015 +0000"
      },
      "message": "Remove DEBUG_JIT from Zygote flags.\n\nThe flag is being obsolete by the move to JIT.\n\n(cherry picked from commit 0f042e04efba887557e40f981bd9c41b121c4652)\n\nChange-Id: I32c3183e791690964c00fab02a6ee7bbacf6b665\n"
    },
    {
      "commit": "04302dbb106d590ff72c0dfecda23d85b6565059",
      "tree": "2fe66e258de36bcebc913d48e04468b7c639578f",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 11 23:45:34 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 13 15:21:29 2015 -0800"
      },
      "message": "Fix class unloading with the CC collector.\n\nAvoid unnecessarily decoding dex cache and class loader weak roots,\nwhich would trigger read barriers.\n\nRe-enable 141-class-unload with the CC collector.\n\nBug: 12687968\nBug: 24468364\nChange-Id: Ib4c19f25000873cab0e06047040442d135285745\n"
    },
    {
      "commit": "bc36a0f4d8194f9e3e79dde3b7d01098894535ee",
      "tree": "9a9a1b42881b98103536ea87b798c4af17425e00",
      "parents": [
        "4678b6bb31123076c2d921b20b52e52459d8b650"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Nov 11 12:04:04 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 13 16:08:01 2015 +0000"
      },
      "message": "Build libxxavacore library for gtests\n\nIt is a dependency for exception_test, jni_compiler_test,\nreflection_test and stub_test.\n\nChange-Id: I0a4ed85762091617842901f9bd590d24fe39ec7b\n"
    },
    {
      "commit": "d1ef4362bf799f9f5d50e5edef8433664b503051",
      "tree": "59aaa140925efa790f787d5e1caf6d0cafd6ae15",
      "parents": [
        "e4cf5892c2a244034900d49499c071b255571bba",
        "f32e8327da5dd33abe18662fbca5e584cd047816"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:49:06 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:52:42 2015 +0000"
      },
      "message": "Merge lmp changes into mnc.\n\nMost merge conflicts are due to changes in the string representation.\nThey have been resolved in favour of \"mnc-dev\" since we\u0027ve changed\nthe string representation there. Other changes relate to the\nfact that there are now two jars in libcore (core-oj and core-libart).\n\nChange-Id: I1fcc6e5f8dab8d1954dcddca0493563e7677d433\n"
    },
    {
      "commit": "f32e8327da5dd33abe18662fbca5e584cd047816",
      "tree": "795726fab7ea9cbd8460721b9fe67728d8f1784b",
      "parents": [
        "c20327a10a63634bd537c43f6ac272e12cb42152"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Oct 07 10:49:18 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 10:15:59 2015 +0000"
      },
      "message": "Add Android System#arraycopy fast specializations.\n\nRe-added System#arraycopy specializations that are\nreally fast for small arrays. They were introduced\noriginally in b/7103825.\n\nChange-Id: Ie8c995852810ad555fe73743d4d40ec45d8d6bbe\n"
    },
    {
      "commit": "0787f9d489da6496213c8d60d1dec113a0653f0f",
      "tree": "25f016ddcf6a7326b95ac57ccb0e13e76be2d207",
      "parents": [
        "a0cf5a663f19f0392187d349f1832d85f90ab805"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Sep 09 18:41:55 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 10:15:51 2015 +0000"
      },
      "message": "Rename native library.\n\nChange-Id: Ie9da5051fc71c512cc8205ae6baf3da040b34ecb\n"
    },
    {
      "commit": "073b16c8429d302d5413e8ffc488b03b8f770780",
      "tree": "a417fd8042df8c0a9621f9097643ecaede4deeab",
      "parents": [
        "5165b6ba1fda85d769c5092a65f07bcfffb0b3e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 10 14:13:23 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 11 19:22:33 2015 -0800"
      },
      "message": "Image space cleanup for app images\n\nRemoved Heap::GetImageSpace, added Heap::GetBootImageSpace.\n\nGeneralized some logic in the class linker for image spaces.\n\nBug: 22858531\n\nChange-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25\n"
    },
    {
      "commit": "88f423f8ce96d521e8f54f84611520b67d320fdc",
      "tree": "189ecbebcda856a2c192915a5f84c0fd3461a8dd",
      "parents": [
        "3ef5f487db4742f0253bb5eb5c53bbdbe4ce2600"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Thu May 07 09:41:00 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 09 10:39:34 2015 +0000"
      },
      "message": "Remove native registration of a new classes.\n\nChange-Id: Iea060b2fb2133f2c7c84b7fde887e591507c02fc\n"
    },
    {
      "commit": "8ca90774165b22fdbc87c89c8b55192e43fb2e43",
      "tree": "da0624edf3776c761112371b46a96f157d53515f",
      "parents": [
        "df0b17a474306198b7b0320311496e42d707a00e"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Fri Apr 24 09:18:00 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 09 10:31:46 2015 +0000"
      },
      "message": "Load libopenjdkjavacore in addition to libjavacore.\n\nChange-Id: I205f055838adefc7350ae65401310f7d2192f562\n"
    },
    {
      "commit": "6cff48f05894a60aa4742472983a75504536ca15",
      "tree": "bd399d46ef08cd836010f3119c8c5db054561267",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Jan 26 21:36:13 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 23 11:16:11 2015 -0700"
      },
      "message": "ART: Speed up thread stack tracing for ANRs\n\nShare a BacktraceMap for all threads being dumped, which speeds up\nANR dumping. Results from Nexus 9 (average of five):\n\nBefore: 0.587s\nAfter:  0.206s\n\nChange-Id: Ia70e0dbd39049318c02de561e7b95258d4849467\n"
    },
    {
      "commit": "32cc9ee0cdffecb0ec8d80a7fd55d7dccae3a7ee",
      "tree": "e394d05cb35fd8a89ae4be0d57635d7fee219ede",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 09:19:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 16 08:46:12 2015 -0700"
      },
      "message": "Change hash table load factors\n\nChanged class table and intern table load factors to query the\nruntime. The runtime returns load factors based on whether or not we\nare a low ram device.\n\nDescriptorEquals time for class linking goes from 10% -\u003e 1.2% for\ncompiling GmsCore with interpret only.\n\nAdded test.\n\nBug: 24917584\n\nChange-Id: Iaaf5d2eab1b0c2d188d299e4bc1852cdb3801173\n"
    },
    {
      "commit": "85506c2ff34e930b4589568f78ee30f60d49d456",
      "tree": "c7e4b30a54046ed90a212e298f871a5df257c648",
      "parents": [
        "7598f145d4fd4219c14c6e2c8a03b34ce7943ffe",
        "eb7c144a6aff7da673ba53d501c46f00311d4d7f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "message": "Merge \"Add initial default method support to Art\""
    },
    {
      "commit": "e58991b3b2282b5761f1a6023a16c803e1c4eb45",
      "tree": "5a6fac6c5d3cb6a463463b83b8a34a53b07a8ede",
      "parents": [
        "fb11bab9bc96ff05dcb12f43abf58df256b7c7aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 07:59:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 13:17:50 2015 -0700"
      },
      "message": "Revert \"Revert \"Unload oat files\"\"\n\nFixed a race where two threads calling OatFile::Open could both use\ndlopen on the host.\n\nBug: 22720414\n\nThis reverts commit 72da5e7461fec3b1e116050f2e6f233efb9c54f3.\n\nChange-Id: I1636045b724944d2a09417527280784967957095\n"
    },
    {
      "commit": "eb7c144a6aff7da673ba53d501c46f00311d4d7f",
      "tree": "feec33dd2e711800305477b092970500991a3993",
      "parents": [
        "98ae42010a6e6a0e4c5bcc4d6a357805eef3f4ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 31 13:17:42 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 13:09:37 2015 -0700"
      },
      "message": "Add initial default method support to Art\n\nThis commit starts the process of adding default methods and their\nassociated pieces to ART.\n\nThis adds full support for calling default methods using\ninvoke-interface and invoke-virtual on objects implementing the\ninterfaces. Verifier is changed to allow this when the runtime is\nstarted with -Xexperimental:default-methods.\n\nThis also adds support for defining and calling static methods on\ninterface classes with invoke-static.\n\nDirectly calling overridden default methods using invoke-super is not\nyet supported.\n\nThis adds 5 new run-tests for this functionality.\n\nBug: 24618811\n\nChange-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03\n"
    },
    {
      "commit": "f9c6fc610b27887f832e453a0da1789187293408",
      "tree": "3f45a15327e5bc7cb71e6c238ba75e87ae2e6058",
      "parents": [
        "793e6fbdefb092d1dab50bca5618aed110c7e037"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 07 11:44:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 09 12:57:53 2015 -0700"
      },
      "message": "Add OatFileManager\n\nTakes over a large amount of functionality from the class linker.\n\nChanged OatFile to loading the same OatFile multiple times. This is\nrequired for unloading OatFiles and moving dex caches to BSS since\nthese require a different OatFile for each dex cache and class\nloader.\n\nBug: 22720414\n\nChange-Id: I0321096723a294dc72949f21e66da82727b512fc\n"
    },
    {
      "commit": "a6b1ead81603513fd40b77fd72f06d8cb1f35276",
      "tree": "3ba5add50b6b0034024e65c6de3aea1004ec5161",
      "parents": [
        "bcb71a2ce5bcb516f76fc9fe838b61b0c48e1210"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 06 10:32:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 06 13:24:20 2015 -0700"
      },
      "message": "Mark breakpoint roots\n\nUsed to prevent class unloading on methods that have breakpoints.\n\nBug: 22720414\nChange-Id: I9aee8bcbfdf253607e89dfc55a50ba3f11d99206\n"
    },
    {
      "commit": "c3fcd41f15dffbb5f28c9900f421471a3d2dd420",
      "tree": "df1bb755238684ab5a01a79959c063a88801e218",
      "parents": [
        "ac87001cbbd44b436cc7866f7a41037ca83b17f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 16:54:59 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 18:01:30 2015 -0700"
      },
      "message": "Address some code comments\n\nChange-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12\n"
    },
    {
      "commit": "017ed0b936539dba1bb6f1d9b2bd81798b471966",
      "tree": "24cee7c2bafe0d931081d3869cfc7ca78f748e47",
      "parents": [
        "b64d5832879f462ed146f0b012ea0bf62255b643"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "message": "Fix CreateLinearAlloc bug\n\nShould have been using IsAotCompiler since the JIT has IsCompiler\nas true but no low 4 GB arena pool.\n\nFixes 64 bit JIT tests.\n\nChange-Id: Idc4d3e66c573eacd31ae85c66f8493b418d221d7\n"
    },
    {
      "commit": "951ec2c93c79c5539cbcc669566f0808d4460338",
      "tree": "ce3505be2fc526afafaf6135e9d15d831860502d",
      "parents": [
        "6a6916b378c413c2692782e901393607c47f0005"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 08:50:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 16:25:09 2015 +0000"
      },
      "message": "Revert \"Revert \"Add one LinearAlloc per ClassLoader\"\"\n\nIssue was fixed by:\nhttps://android-review.googlesource.com/#/c/171945/\n\nBug: 22720414\n\nThis reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.\n"
    },
    {
      "commit": "6a6916b378c413c2692782e901393607c47f0005",
      "tree": "b492954ac5c25d99c967798174355736a934344a",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004",
        "37cf51fb00bbe4bb82e713228b460cafbbf79b43"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "message": "Merge \"ART: Fix destruction order in Runtime.\""
    },
    {
      "commit": "37cf51fb00bbe4bb82e713228b460cafbbf79b43",
      "tree": "7329488024609e91d6683734c889b0cc0998f3aa",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 11:43:46 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 12:09:59 2015 +0100"
      },
      "message": "ART: Fix destruction order in Runtime.\n\nDestroy arena allocators as late as possible.\n\nWith https://android-review.googlesource.com/172057 , the\nArenaPool was indirectly used by ClassLinker\u0027s destructor\n(via ~LinearAlloc) after it has already been destroyed.\nThese allocators were being destroyed way too early anyway,\nthey should be orderly destroyed when the unique_ptr\u003c\u003e\nmembers of Runtime have their destructors executed. However,\ndue to the potential dependence on MemMap, we destroy them\njust before the MemMap::ShutDown().\n\nChange-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643\n"
    },
    {
      "commit": "7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0",
      "tree": "a87eeac15fd485bb14ea8ace2b2bc839c4c253be",
      "parents": [
        "356412e2b7ba3fde164bc08a44fee0ddc19c54e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "message": "Revert \"Add one LinearAlloc per ClassLoader\"\n\nTimes out on 32bit target/host for 132-daemon-locks-shutdown test.\n\nBug: 22720414\n\nThis reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1.\n\nChange-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326\n"
    },
    {
      "commit": "356412e2b7ba3fde164bc08a44fee0ddc19c54e1",
      "tree": "9e07c960e67b3627ced80fa9a0dcd0c9fd8b5951",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 09:07:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 12:48:12 2015 -0700"
      },
      "message": "Add one LinearAlloc per ClassLoader\n\nAlso added freeing linear alloc and class table when the\ncorresponding class loader is no longer reachable.\n\nBug: 22720414\n\nChange-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795\n"
    },
    {
      "commit": "1147b9bd68323c753ed1a0b6106b205fd640c820",
      "tree": "d14f8a47c66b78716d23b6cdcbc6e3e6da498361",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 14 18:50:08 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 10:02:40 2015 -0700"
      },
      "message": "Use image pointer size for profile info\n\nMay fix some random crashes in dex2oat due to cross compilation.\n\nChange-Id: I633652500e8c7dfec38044dffd07eb467973d82a\n"
    },
    {
      "commit": "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
      "tree": "468d9275ebb774de9c373aea6387e5c55c4336e6",
      "parents": [
        "b6f7dd330f115fc977d1d5a10122c41c9dd7c210",
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "message": "Merge \"ART: Add some utilities for working with containers.\""
    },
    {
      "commit": "5550ca8bcc742b109d77e62f3a0877c667d894d3",
      "tree": "522c873c59b56fff0244e754dd869f18ccf485f4",
      "parents": [
        "dbd357086fdb7fce619d745fda4efd52377becdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 18:38:30 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 11 15:08:37 2015 +0100"
      },
      "message": "Record profiling information before Jitting.\n\n- Add a new instrumentation kind to record dynamic invokes.\n- Use the JNI entry point field to store the profiling data.\n- Record seen receivers for every dynamic invoke.\n\nChange-Id: I2c1738ab2a72052d45964d055dc16b44b906e54c\n"
    }
  ],
  "next": "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
}
