)]}'
{
  "log": [
    {
      "commit": "da0a69edb24122d3d35ce1483c5ab94de919d714",
      "tree": "7216e6a19b1a9f3ca9da28d61c717ad9086d994e",
      "parents": [
        "278ec18934045477f0340b4aa6564f003a1e190d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 11 15:06:38 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 19 16:37:47 2016 +0100"
      },
      "message": "Return error message if IndirectReferenceTable construction fails.\n\nPreviously if there was an error when constructing the\nIndirectReferenceTable, the error message was lost. Now expose and\ninclude the error message when throwing an exception related to\nfailures to construct the IndirectReferenceTable.\n\nThe error message is propagated through JVMEnvExt, JavaVMExt, and\nRuntime::Init as well.\n\nBug: 32013594\nTest: Added new 151-OpenFileLimit runtest.\nTest: m test-art-host, m test-art-target\n\nChange-Id: I3692f6928c9570358571bce634569d6f14cdeb05\n"
    },
    {
      "commit": "f57589fd40e5b69dad5aff060ccef756507f381a",
      "tree": "62d38e73660d9818b18c4741c6b3cce3306d63d5",
      "parents": [
        "c25dfeab1a66c942ae658fc7cd367f7c1ac502a1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 10:09:33 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 13:50:35 2016 -0700"
      },
      "message": "Remove logging dependency on runtime\n\nMoved the abort backtracing function to runtime, forcing callers to\nsupply the aborter at InitLogging.  This makes runtime properly layer\non top of logging by removing the cyclic dependency.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I8b2e72174e937bb88fe1bddd6d04b564cfb011a9\n"
    },
    {
      "commit": "498e122d91b441c5d6a4c2572d492028772e2cb8",
      "tree": "3a6b55fe477125b935d103712e7c970ff81158e0",
      "parents": [
        "174d17b2f70f009d5fa349bb94b1703297c36ec4",
        "f5b0f2cef8554efaa90adc6a1ae04c2b533970ed"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 15:18:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 17 15:18:09 2016 +0000"
      },
      "message": "Merge \"Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\""
    },
    {
      "commit": "f5b0f2cef8554efaa90adc6a1ae04c2b533970ed",
      "tree": "431874a41548ba5d18598a5b1b520de042e012a9",
      "parents": [
        "4c91f05a9ad59759760fb8c1543684dfdb9ab7dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 01:04:26 2016 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 16:52:42 2016 -0700"
      },
      "message": "Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\n\n(cherry picked from commit 645e477c2ce7a59ac98bc86463826cf082a13ad8)\n\nTest: m -j32 test-art-host\nBug: 32095919\nChange-Id: I44541edeb403a508e1b9794ee09fb1f55e3f42bf\n"
    },
    {
      "commit": "1a1de67c4923436eb7de7da334c6d77703375dbd",
      "tree": "bf82b30cddfeaa822e14a63c0ad9fedd3886958d",
      "parents": [
        "6e5fa09510c7280168e040382d27dd8b55760d9a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 12:53:15 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 14 11:25:28 2016 +0100"
      },
      "message": "Do not write empty class table and intern table to image.\n\nAnd remove dead ClassLinker and InternTable code that would\nbe erroneously triggered by not writing the tables.\n\nTest: m test-art-host\nChange-Id: I2520daa8d1231e16112d44e364a72d782fa32527\n"
    },
    {
      "commit": "a058fdf0cf7435a13a6e8cae5e3a9bfa1513828d",
      "tree": "85de1316f29f661372841d5feee16c370375fc16",
      "parents": [
        "c4f3925490a73da8dc74884a1deb965d4ecaf14e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:13:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:53:58 2016 -0700"
      },
      "message": "Move mirror::Object setters to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c4c84645e194c3c435a4a6fd670176b0e98671f\n"
    },
    {
      "commit": "2f61867045ffbd0c38a4ecec5f59632004f7efff",
      "tree": "c7b4393d7cd7cbcd3272ff83d8424be02828251a",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef",
        "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "message": "Merge \"Remove #include \"oat_file.h\" from class_linker.h .\""
    },
    {
      "commit": "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1",
      "tree": "d2f02420f82d76d10dc0d80f431c9f4aba03ac82",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 14:44:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 13:21:44 2016 +0100"
      },
      "message": "Remove #include \"oat_file.h\" from class_linker.h .\n\nRefactor the OatClass and OatMethod related functions from\nClassLinker to OatFile and ArtMethod, respectively. Refactor\nthe remaining ClassLinker dependencies on OatFile to break\nthe #include dependency and reduce incremental build times.\n\nTest: m test-art-host\nChange-Id: Iebc5b9f81b48fbcf79821cc827a5d7c4a0261bf6\n"
    },
    {
      "commit": "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
      "tree": "ffe6d3711b565330fb883953144ddd7603356804",
      "parents": [
        "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
        "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:39:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:39:08 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\""
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "90a32b16feb58d4edf932fdcb6a070be3418e365",
      "tree": "dadbf8759551c67cdb54851027459a542d4d10f4",
      "parents": [
        "f1e8630fe8eab89e61e9f0a97135ae7c9d38ce23"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "message": "ART: Reprint long messages on abort\n\nAdd an abort message parameter to Runtime::Abort. In case the message\nis multiline (and will thus not be completely preserved in the\nAndroid abort reason), reprint the message after all threads have\nbeen dumped.\n\nBug: 31893081\nTest: m test-art-host\nChange-Id: I65bc77691fec79f7c868a90d6132805fcc91e473\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "afa48270228832ecd7df4506915354d1a41f374a",
      "tree": "7d63c5bde346eb129f3159b07b2a66dfa86aeb41",
      "parents": [
        "72795d0a3368a7f921ce2f470917131cd946b717"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 13:15:32 2016 +0100"
      },
      "message": "java.lang.invoke: Add mirror types for MethodHandle / MethodType.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I096160464bc6e84f7e5ad021306a7e462cf3b0c5\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "866d874c4fca90385251a1df28eed0eb6e1b88e2",
      "tree": "ae853738fe345523af56be0a021f46bc90e0d2ed",
      "parents": [
        "be0f728348139a9185b08d4d5c5adfa806bee00b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 15:24:18 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 18:43:45 2016 -0700"
      },
      "message": "Make image test multi image\n\nRequired for testing multi image layout in future CLs.\n\nBug: 28640955\n\nTest: clean-oat-host, test-art-host, device booting\n\n(cherry picked from commit 25adcfb7dc81131add3a0a681ae18bced6f7a0e0)\n\nChange-Id: I14809f56e711b4a87e01056c327eddbbd087f4ee\n"
    },
    {
      "commit": "0e8443995af602bcc2e70dcef1d20ee48acec934",
      "tree": "2d81b8db23bea139e40e33e4e9b8c69027fb1e56",
      "parents": [
        "c4cb3d532db8a500c1a15e8a0052895960259209"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Sep 08 13:43:31 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 21 11:42:21 2016 +0100"
      },
      "message": "Collapse ART\u0027s AbstractMethod class into Executable\n\nAfter the OpenJDK 8 pull there is now a common base class\nfor Method and Constructor that can be used instead.\n\nMethods that are abstract on Executable but on Android\nwere implemented in AbstractMethod are now consistently\nrenamed to \"{method}Internal\", declared final and\ngiven package-protected access.\n\nFor consistency with all other private, natively\nimplemented methods, the method getDeclaredAnnotations()\nhas been renamed getDeclaredAnnotationsNative().\n\nBug: 28666126\nBug: 31052885\nTest: make test-art-host and cts run of CtsLibcoreTestCases\nChange-Id: Ibfe6af6a47fe0cfffd0859ffbe58980aeb84e053\n"
    },
    {
      "commit": "b2267032bd852c5566462057135967b24fdfe076",
      "tree": "5d39b18fa9cd864b78e24517e4c1e8885f126a31",
      "parents": [
        "52a8da639e161905122191ddf9c30caabb214ef1"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Tue Sep 13 19:12:57 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Wed Sep 14 14:28:35 2016 -0400"
      },
      "message": "Move art::Runtime::InitZygote logic from art into frameworks/base.\n\nTest: m test-art\nTest: m\nTest: aosp_angler-eng boots\nChange-Id: I119cdd74e5909137365ce723fca1a003ef3c5f95\n"
    },
    {
      "commit": "c9568796e8f9957be75a0e669a954902795d7562",
      "tree": "8a6783bb177692c3b8084e0798d8fbf5c4b44789",
      "parents": [
        "9ef68a3ad02eb7e2242a6d7f6a208c7a9b8ac407",
        "60458a072c4f0b24038420b0f1bed0fe94c72965"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Sep 13 09:02:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 09:02:35 2016 +0000"
      },
      "message": "Merge \"Track libcore Executable.getParameter() changes\""
    },
    {
      "commit": "f9decf915f6fa5b33fceba7c10c119e4cad481e5",
      "tree": "80a2268fa79c4096d9ebddf8ffd66f68f89fcbb2",
      "parents": [
        "e204051d3cc3b1be2e91f26621966c79c82fa74c",
        "fda5714edb368270b7ef639054f4cba1d5f4874c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 23:18:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 23:18:39 2016 +0000"
      },
      "message": "Merge \"ART: Add generic system-weak holder infrastructure\""
    },
    {
      "commit": "fda5714edb368270b7ef639054f4cba1d5f4874c",
      "tree": "154e3575910441f76ba121c72b47b04f2069f3dc",
      "parents": [
        "97750797e1195651228698877724ae8599eb1e44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 08 20:29:18 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 12:52:22 2016 -0700"
      },
      "message": "ART: Add generic system-weak holder infrastructure\n\nAdd an \"interface\" for a generic system-weak holder that is\nintegrated with the well-known instances in Runtime. Add a\nsimple implementation handling synchronization.\n\nAdd a test.\n\nBug: 31385027\nTest: m test-art-host-gtest-system_weak_test\nTest: m ART_USE_READ_BARRIER\u003dtrue test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dGSS test-art-host-gtest-system_weak_test\nChange-Id: I1100e2cbd9ee57860993d0039de73d197681c542\n"
    },
    {
      "commit": "c93b3be140f6a57a572f2a4cdaf46aba87235a02",
      "tree": "96e0d1d8b53b1eecf66188704ab12036632702e3",
      "parents": [
        "935cf1b7a5e55a8d9aeab7e8955012849f0c1b68"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 18:49:58 2016 +0100"
      },
      "message": "Fix run-test after introduction of VDEX\n\nRun-test 119-noimage-patchoat used to fail due to a codepath in\nOatFile which allows to create an instance of the class from an\nexisting ElfFile instance. This patch updates the codepath to require\nan existing VdexFile as well.\n\nTest: art/test/run-test 119\nBug: 30937355\nChange-Id: I8fd0e47f07921aaee999f73711766ada9c35d214\n"
    },
    {
      "commit": "bb816d66aabb9c2a2e095517d2013041116332db",
      "tree": "1d51444ec1d6febfba8c2d6e9502bf76939261fa",
      "parents": [
        "ddac139d83bfb121d1536fb40ab48c9bee6c25b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 07 10:17:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 11:17:17 2016 -0700"
      },
      "message": "Add transactions for string resolve\n\nFixes a bug where resolved strings can be left in the dex cache after\na transaction is rolled back even though the interned string was\nremoved.\n\nAdded test in transaction_test.\n\nBug: 31239436\n\nTest: test-art-host\n\nChange-Id: I42c67bcefeae8db134cde34c480261f52db4102e\n"
    },
    {
      "commit": "60458a072c4f0b24038420b0f1bed0fe94c72965",
      "tree": "e1e10a29c99f99538695c12da1af914d84ddd4c3",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Sep 01 15:32:44 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 07 11:12:02 2016 +0100"
      },
      "message": "Track libcore Executable.getParameter() changes\n\nExecutable.getParameter() has been added which added\ntwo new fields to java.lang.reflect.Executable,\nimpacting class arrangements and padding.\n\nThe java.lang.reflect.Parameter class has been added\nwhich has some associated native code and support\nmethods in DexFile.\n\nTest: make test-art-host\nBug: 28666126\nChange-Id: I4ff6469388879651a6c9e568eca0b1cd716f0c0d\n"
    },
    {
      "commit": "a4c2a054ca946eb14496fe8e9fd6057a59ccf692",
      "tree": "e6ba8afbff39b30775c24d81a05ee255fcc9457b",
      "parents": [
        "79c3e4e558215ffae1601fc6d5f1626e063a4b22"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Aug 17 10:51:42 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 02 11:40:21 2016 +0100"
      },
      "message": "Support for loading classes from DEX files stored in a ByteBuffer.\n\nBug: http://b/26878838\nTest: test-art-target-gtest-dex_file_test\n\nChange-Id: I68845c35784386bde6270102f0079d4f07bc4d03\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "d106d9f871c957286ccdeb79c1c2a5ed41f859a6",
      "tree": "dc61a7fd80e1289777f6a991102b0fe4a2ef032d",
      "parents": [
        "99fd9f39f2cd74864bdc750a3444ddd776da534c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 16 19:22:57 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 30 09:32:49 2016 -0700"
      },
      "message": "Save environment snapshot and use at fork/exec\n\nSome applications may inadvertently or maliciously set of environment\nvariables such as LD_LIBRARY_PATH before spawning subprocesses.\nTo make this more difficult, save the environment at the time the\nruntime starts and use the saved copy anytime Exec is called.\n\nBUG: 30160149\nTEST: make test-art-{host,target}\n\nChange-Id: I887b78bdb21ab20855636a96da14a74c767bbfef\n"
    },
    {
      "commit": "185d134a3b43ab7529053e965917e0fa74bceba4",
      "tree": "5d3d0cee3aa4c64fc5f36fd5f648e53f6df984ae",
      "parents": [
        "7233c7e752c0d26387d143ee74420e9cd1f09390"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 10:48:03 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:55:03 2016 -0700"
      },
      "message": "Add basic runtime-plugins support.\n\nThis allows one to pass shared-libraries on the command line that the\nruntime will load as plugins. They have access to runtime code and can\ninstall hooks to add functionality. Currently the only hook they can\ntouch is JavaVMExt::AddEnvironmentHook to register a callback for\nGetEnv(). More hooks might be added in the future.\n\nTest: ./test/run-test 900\nChange-Id: I852b4daf5a3fa71e9888722bc07794632c0e5010\n"
    },
    {
      "commit": "7233c7e752c0d26387d143ee74420e9cd1f09390",
      "tree": "680b4c1fc3fddbe6004156e5e02770223f3f8587",
      "parents": [
        "f2b1529b0988a1722b718fee6911e0030e95c9b6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 28 10:07:45 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:48:13 2016 -0700"
      },
      "message": "Create a basic agent loading framework.\n\nCurrently we only allow agents to be loaded at runtime startup, though\nthis is expected to change soon.\n\nTest: ./test/run-test --host 900\nChange-Id: Id648eaed4bbbe6fdef41d64922d023a4db0bfa54\n"
    },
    {
      "commit": "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5",
      "tree": "af38070b0fad716033c005a673a4ae0f7ccd27cc",
      "parents": [
        "45b17187699a938af2cf67fe11848951f2501087",
        "14832efeb92334c562ebedef34e920d30e3cee69"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 10 10:20:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 10:20:50 2016 +0000"
      },
      "message": "Merge \"Revert experimental lambda feature.\""
    },
    {
      "commit": "14832efeb92334c562ebedef34e920d30e3cee69",
      "tree": "57d10c24966a46ae1c01861ee579ac6000326c45",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 05 11:44:32 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Aug 09 13:47:49 2016 +0100"
      },
      "message": "Revert experimental lambda feature.\n\nThis is a revert of the following changes :\n\n30c475a2046951a81769c2db0b2dad66cd71e189.\nlambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.\n\n6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.\nlambda: Experimental support for capture-variable and liberate-variable\n\nfc1ccd740b7c8e96dfac675cfc580122cd1b40a6.\nlambda: Infrastructure to support capture/liberate-variable dex opcodes\n\ne2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.\nruntime: Add lambda box/unbox object equality\n\n2ee54e249ad21c74f29a161e248bebe7d22fddf1.\nruntime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\n158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.\ninterpreter: Add experimental lambda opcodes for invoke/create-lambda\n\na3bb72036f5454e410467f7151dc89f725ae1151.\nAdded format 25x to dexdump(2).\n\nPlus surrounding cleanups.\n\nTest: make test-art\nChange-Id: Ic6f999ad17385ef933f763641049cf721510b202\n"
    },
    {
      "commit": "5dd44d0da7999ab62f09a1bf03345280811736d4",
      "tree": "18dc0029caf5791b0bf831dcc6e38f623fe14eb4",
      "parents": [
        "20b975cc5c5a1f4e6f0a8e525b5d2e63abc413df"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 02 17:20:03 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 04 18:19:02 2016 -0700"
      },
      "message": "ART: Factor out native stack dumping\n\nMove DumpNativeStack and DumpKernelStack into a new file to keep\nconcerns separated. Clean up the file.\n\nIn preparation for modifications to how we use addr2line.\n\nBug: 30351473\nTest: m test-art-host\nTest: manual host testing with a test that times out\nChange-Id: I02d5645952fe94fd8e73bcf0522721547f6cef66\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "56fe25895e91d34a0a017429468829a20bdd5ae4",
      "tree": "b000aa1b4a54360db45436a9df872b034e36d79f",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 13:30:03 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 20 18:05:30 2016 -0700"
      },
      "message": "Add a way to measure read barrier slow paths\n\nIf enabled, this option counts number of slow paths, measures the\ntotal slow path time per GC and records the info into a histogram.\nAlso added support for systrace to see which threads are performing\nslow paths.\n\nAdded runtime option -Xgc:measure to enable. The info is dumped\nfor SIGQUIT.\n\nTest: Volantis boot with CC, test-art-host with CC, run EEAC with CC\nand -Xgc:measure\n\nBug: 30162165\n\nChange-Id: I3c2bdb4156065249c45695f13c77c0579bc8e57a\n"
    },
    {
      "commit": "138dbff9246c89ac9fbe0b086b54fdab3f4451fb",
      "tree": "07afe983b3892505d4a5bdd3b3bdd5fe126e76c7",
      "parents": [
        "be84b59e802d9176a9b60b040e0be6bda54e958a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 19:36:58 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 29 14:31:30 2016 +0100"
      },
      "message": "Clean up profiler options\n\n- remove obsolete options\n- using ProfileSaverOptions instead of hard-coded values in the profile\nsaver\n\nBug: 24698874\nChange-Id: I4ff535d29a644d1bd5509844f89615b70a723749\nTest: cmdline_parser_test, gtest and run-tests pass.\n"
    },
    {
      "commit": "be84b59e802d9176a9b60b040e0be6bda54e958a",
      "tree": "9a4fd41bef42a5487581244f74c4c41f6abd2730",
      "parents": [
        "9822f6b81f7e8cb31d6ff8a1b60fe15fa9d439a8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 23 17:09:13 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 14:01:25 2016 +0100"
      },
      "message": "Remove the old obsolete profiler\n\nBug: 24698874\nTest: all the existing run-tests pass.\nChange-Id: I56d25c75541275512a64ae5708569461b875df9c\n"
    },
    {
      "commit": "37d6a3bbf5826abb73f872ed0bc4c6ae9553e274",
      "tree": "0fbe5fda78e251597f909f654014f2c25efa62e5",
      "parents": [
        "739dc72773c5dee583a1d322f91b5abd61f9889d"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jun 21 18:30:10 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 22 15:39:07 2016 -0700"
      },
      "message": "Support the -i flag in the new dexdump.\n\nRationale:\nThe old dexdump supported the -i feature (ignore checksum failures).\nThis CL adds the same functionality to the new dexdump. Note that\nthis feature is, for example, useful to inspect DEX files that are\nextracted from images (with quickened instructions), since the\nchecksum is not always valid in those cases.\n\nBUG\u003d29548017\n\nChange-Id: I6017b2f3d789f450560b568297f43c62bf9453b1\n"
    },
    {
      "commit": "f711f2cf3c28dfe865e36f17419a16f06a0ebb5a",
      "tree": "3657d68b2a2fb67f4919cb97ca279cf9310224e9",
      "parents": [
        "bbfa42aa4c4b5cbc2ed2d8bdea6ff76da615a8aa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 23 12:29:39 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 26 13:24:54 2016 -0700"
      },
      "message": "Partial fragment deoptimization\n\nWe used to do either single frame deoptimization, or full fragment\ndeoptimization which deoptimizes all the frames in a fragment.\nThis change allows some methods to be not deoptimizeable, likely due\nto some kind of optimization. So we need another deoptimization mode\nthat unwinds partial fragment. Deoptimizations are now generalized into\neither full or partial fragment. A full fragment deoptimization will\ndeopt all frames in the fragment, and then returns from the invoke stub\nto enter interpreter. A partial fragment deoptimization will deopt a\nsingle frame, or all frames up to the method that\u0027s not deoptimizeable,\nand then jumps to the interpreter bridge.\n\nCurrently code not deoptimizeable is the code in boot image since the\ncode may not be compiled with debuggable flag.\n\nBug: 28769520\nChange-Id: I875c694791cc8ebd5121abcd92ce7b0db95aca38\n"
    },
    {
      "commit": "f0192c86a58b2f43378c9a2113007538dd38ddbf",
      "tree": "df3fef8e9ccd30152819e893e6212ce45b5f51a5",
      "parents": [
        "783d02e527107e91880f12bddf41afd313919132"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 28 20:39:50 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 17 11:08:41 2016 -0700"
      },
      "message": "Support to pass \u003cuses-library\u003e option through to dex2oat.\n\nThis change takes an app\u0027s shared libraries specified by \u003cuses-library\u003e\nand passes it through to dex2oat to be used during compilation.\n\nPart of a multi-project change.\n\nBug: 26880306\n\n(cherry-picked from commit 26e8a2f150cd7f7195a10650ab8a5b6fa5014bc8)\n\nChange-Id: I72a352abdfc37eacd8bedfa6c218e3809ca8e39c\n"
    },
    {
      "commit": "a2b147eaf72c5af23302a382620360b4cac28934",
      "tree": "eb0876d95dda8f278237ad50f6c1cca4ca84c993",
      "parents": [
        "af4bcdf49e014ededa9e71e425dac761697dac8d"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Thu May 12 14:55:48 2016 +0100"
      },
      "committer": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri May 13 13:21:45 2016 +0100"
      },
      "message": "Ensure that java.lang.reflect.Field is initialized\n\nRecent change in libcore (a move of clinit code\nto register function for java.net.InetAddress\nclass) was triggering a failure in 119-noimage-patchoat\ntest. Failure was occurring when the test was running\nwithout the image. This was caused by the\njava.lang.reflect.Field not being initialized when\nrunning InetAddress.\u003cclinit\u003e, which is a side effect\nof calling JNIEnv-\u003eGetMethodId inside the libcore JNI_OnLoad.\n\nThis changes makes sure that this class is initialized\nwhen we\u0027re running without image.\n\nBug: 28153851\nChange-Id: I8aeb5eb312a163c452c40b851112544a8340e488\n"
    },
    {
      "commit": "f4b3487ee77e3c2e3d5372ae9e857cd3429bb808",
      "tree": "b48ab16dec4e8d1deab6556788f9a5fe2b62f77a",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Apr 13 11:03:46 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 03 12:22:39 2016 -0700"
      },
      "message": "Remove -XOatFileManagerCompilerFilter argument.\n\nInstead use the value of \u0027-Xcompiler-option --compiler-filter\u003dXXX\u0027 for\nthe target compiler filter to use to determine if the runtime should\ntry to invoke dex2oat when oat files are loaded.\n\nBug: 27641809\nChange-Id: I1856e0e37df91835b81105567c70d8a285a88f62\n"
    },
    {
      "commit": "de604a2d6e69f5a7de10ca4876c758658879124d",
      "tree": "62922ade4d527f71281bcfebda940d97d06c828e",
      "parents": [
        "945dc321df3e69bb59c834f6399d34bbfd624e5c",
        "f39f0097c5cb6f9413f5df0558ffb24bc3221d41"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 29 11:47:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 11:47:50 2016 +0000"
      },
      "message": "Merge changes I96464d76,Id5e77316,Icb42a081,I68afc181,I82094e46\n\n* changes:\n  Fix how the ProfileSaver thread attaches to the runtime.\n  Fix -Xint and -Xusejit interaction\n  Add command line option for jit invoke transition weight\n  Split profile recording from jit compilation\n  Allow the framework to register sensistive threads to the runtime\n"
    },
    {
      "commit": "91288d8f03b9aab28b61a4a76e552ad7e0c15c8b",
      "tree": "f4d7265c8e96375905da749f858672b37580e596",
      "parents": [
        "d23d7d145c86975acbcc75505b8a323337066ac0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 09:44:54 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 15:18:24 2016 -0700"
      },
      "message": "Revert \"Revert \"Write conflict tables in image\"\"\n\nAdded test.\n\nBug: 27906566\n\nThis reverts commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6.\n\n(cherry picked from commit cdca476bf3394ce9d97a369e84e701b427009318)\n\nChange-Id: Ia94fc7acc7ae3879921c4e8d0a02b156037ac286\n"
    },
    {
      "commit": "d23d7d145c86975acbcc75505b8a323337066ac0",
      "tree": "a62d4397dd54fa1ee65ce870e3c0b0b965f43868",
      "parents": [
        "85e47976a483844177eb486d6e501fa070fbe6e2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 21:03:42 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 15:18:10 2016 -0700"
      },
      "message": "Revert \"Write conflict tables in image\"\n\nSome strange issues on angler.\n\nThis reverts commit cda9386add68d94697449c6cb08b356747e55c21.\n\n(cherry picked from commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6)\n\nChange-Id: Iffd25c5fb732ff72b58c787c107dc33c56f8c8d4\n"
    },
    {
      "commit": "af36e4996abd11e91faf0bb8bcd45696321b2c5d",
      "tree": "19eeec0e0ffc89cf6c6cfb29f099f8d21eb15a45",
      "parents": [
        "155ff3d1c59c0f88993559b0b9bd639f7e32f048"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 27 18:50:45 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:31:14 2016 +0100"
      },
      "message": "Fix -Xint and -Xusejit interaction\n\n- don\u0027t allow interpret and jit compilation at the same time\n- make sure we -Xsaveprofileinfo works with -Xint.\n\nBug: 27916886\n\n(cherry picked from commit 6caaa84947d5d207cde511978db327d95226e3ce)\n\nChange-Id: Id5e7731653b322c25329b031561cfe150eb66522\n"
    },
    {
      "commit": "ffc87076dda9878cb2cc098149bae441d38b9268",
      "tree": "e587208d6a8e62532792add3e1ace6b4e6d73e0f",
      "parents": [
        "97cbc9206e9adc473a90650ebdb5d620f517ff04"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 20 14:22:09 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:15:04 2016 +0100"
      },
      "message": "Split profile recording from jit compilation\n\nWe still use ProfileInfo objects to record profile information. That\ngives us the flexibility to add the inline caches in the future and the\nconvenience of the already implemented GC.\n\nIf UseJIT is false and SaveProfilingInfo true, we will only record the\nProfileInfo and never launch compilation tasks.\n\nBug: 27916886\n\n(cherry picked from commit e5de54cfab5f14ba0b8ff25d8d60901c7021943f)\n\nChange-Id: I68afc181d71447895fb12346c1806e99bcab1de2\n"
    },
    {
      "commit": "97cbc9206e9adc473a90650ebdb5d620f517ff04",
      "tree": "bef15a43a1c3f3dc2639f156aeea40d95763258e",
      "parents": [
        "85e47976a483844177eb486d6e501fa070fbe6e2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 15 16:16:35 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:12:33 2016 +0100"
      },
      "message": "Allow the framework to register sensistive threads to the runtime\n\nBug: 27865109\nBug: 28065407\n\n(cherry picked from commit 8fff24953c78bd58f3a42ac83b340b90e7e7228a)\n\nChange-Id: I82094e46a2fd12617e091d98831193f9ff56d26b\n"
    },
    {
      "commit": "e42888f9df4163303244070c65d5229d3e201742",
      "tree": "c3c3e380ed16676186040f1da6042fc2cd58e041",
      "parents": [
        "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:45:30 2016 -0700"
      },
      "message": "Write conflict tables in image\n\nAdd image sections for runtime methods and conflict tables. This\nmakes it that we do not need to fake up a length prefixed array\nfor runtime methods.\n\nReduces .art private dirty and PSS.\n\nSystem wide .art PSS goes from 32.5MB to 30.5MB after system boot.\n\nBusiness card .art private dirty goes from 588K to 504K.\n\nIncreases image size by ~100K.\n\nBug: 27906566\n\n(cherry picked from commit cda9386add68d94697449c6cb08b356747e55c21)\n\nChange-Id: I38cbe3150c3eeb385b8cad7cf93614e3980f4162\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\n"
    },
    {
      "commit": "274fe4adcb0610a9920be7814d9beb9cac6417ce",
      "tree": "4a5c41dd2568869ceaf0a510e37065a606f512fb",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 12 16:33:24 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 13 17:34:53 2016 +0100"
      },
      "message": "Remove the JIT from the instrumentation framework.\n\nThis was slowing down the interpreter for no reason.\nAlso, call AddSamples for invoke-static and invoke-direct.\n\nChange-Id: I7b5641097f7741dd32feb1ce6af739fd27fb37c2\n"
    },
    {
      "commit": "b2771b41a956b50266d4d83fbb067f99faf7b7dc",
      "tree": "797b73b8b97c496938a9f6bc498d75911b1ff3c9",
      "parents": [
        "f9eed16e175f8c7cb37d878acc772d653b07101e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 07 17:09:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 13 12:42:29 2016 +0100"
      },
      "message": "Add option to tune sample collection based on thread sensitivity\n\nBug: 28065407\nBug: 27865109\n\nChange-Id: Icdb89f8f8874a41c07e73185523d18e8956620d3\n"
    },
    {
      "commit": "f38a6618b453b76a3370bbf6b351971687099388",
      "tree": "b958345de0a1b0d789985a74df6e1b9ca4e106dd",
      "parents": [
        "336dd6a0989dafb356be5f689028d983b0931335"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 11 08:42:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 12 14:18:51 2016 -0700"
      },
      "message": "ART: Flag to fail thread creation\n\nAdd a flag to mark when the zygote is not allowed to create threads.\n\nBug: 27248115\nBug: 28149511\n\n(cherry picked from commit 415d8070e37c20dfb7e6dc37e74fdb5fffc2022e)\n\nChange-Id: I1dc3620d9e7d0054c672b993d89459fc4b353dfc\n"
    },
    {
      "commit": "1133db79350060158f99210c56f111c6dad43563",
      "tree": "c84b4ae2df13a32539645c0904f08c874c20ae31",
      "parents": [
        "a07be75830af60ce50aba357e8de066e849aa21c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 04 19:50:14 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 04 19:50:14 2016 -0700"
      },
      "message": "Remove AnnotationAccess and its remaining uses.\n\nArt side of this change. Adds a test to ensure annotations not marked\nfor runtime retention can\u0027t be seen at runtime.\n\nBug: 27912552\nChange-Id: I078069b7b3cb72bfe7d0b9ea61e527fee04d56a3\n"
    },
    {
      "commit": "cac5a7e871f1f346b317894359ad06fa7bd67fba",
      "tree": "2df7d4892216a7c976dfe848c9893cb5eb8fa6a5",
      "parents": [
        "6f51d7756a9c66007fe7666b19399e1f60ff6092"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 22 10:39:50 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 19:27:40 2016 +0100"
      },
      "message": "Optimizing: Improve const-string code generation.\n\nFor strings in the boot image, use either direct pointers\nor pc-relative addresses. For other strings, use PC-relative\naccess to the dex cache arrays for AOT and direct address of\nthe string\u0027s dex cache slot for JIT.\n\nFor aosp_flounder-userdebug:\n  - 32-bit boot.oat: -692KiB (-0.9%)\n  - 64-bit boot.oat: -948KiB (-1.1%)\n  - 32-bit dalvik cache total: -900KiB (-0.9%)\n  - 64-bit dalvik cache total: -3672KiB (-1.5%)\n    (contains more files than the 32-bit dalvik cache)\nFor aosp_flounder-userdebug forced to compile PIC:\n  - 32-bit boot.oat: -380KiB (-0.5%)\n  - 64-bit boot.oat: -928KiB (-1.0%)\n  - 32-bit dalvik cache total: -468KiB (-0.4%)\n  - 64-bit dalvik cache total: -1928KiB (-0.8%)\n    (contains more files than the 32-bit dalvik cache)\n\nBug: 26884697\nChange-Id: Iec7266ce67e6fedc107be78fab2e742a8dab2696\n"
    },
    {
      "commit": "c1bc4150415686e6240343c7345c49d80e351df3",
      "tree": "956d642a2b8d885dcea3c468d442145300af2851",
      "parents": [
        "af8e71d59b0ab5e79f53a608b62b3618e36e6a98"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 17:22:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 18:45:16 2016 -0700"
      },
      "message": "Only call jit_load after the zygote fork\n\nOtherwise we always get that enable_debug_features is false since\nthat flag passed as a compiler option post zygote fork.\n\nNo significant change to libart-compiler PSS on calculator.\n\nBug: 27810774\n\n(cherry picked from commit b10cef442594dd0d6c5f1a5784643931a25cc431)\n\nChange-Id: Ie50668ba05ad07a5cf046497959f6d27e09f8fe2\n"
    },
    {
      "commit": "72918ea854d182ef25b2352bfe1c46c1e916a141",
      "tree": "b2f351c0718920bd385df88c57c7248448a4c1be",
      "parents": [
        "42cd3cb6379fe3faf078dcce98610e90155bc8e0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 11:07:06 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 13:06:25 2016 -0700"
      },
      "message": "Load jit compiler pre zygote fork\n\nReduces PSS for libart-compiler.so from 115KB to 2KB per app.\n\nAlso some clean-up.\n\nBug: 27810774\n\n(cherry picked from commit ff2376770c1c6d301778c41e5c27c808a38e6968)\n\nChange-Id: Ic0077a07c21ed9f1952a6c29863a5c0e5bacc01a\n"
    },
    {
      "commit": "29d38e77c553c6cf71fc4dafe2d22b4e3f814872",
      "tree": "92f34f589af205af56189d221ded293234935c26",
      "parents": [
        "2e89e901b9f303549f3ba64e45d87292e9c986c8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 23 15:31:51 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 23 11:30:29 2016 -0700"
      },
      "message": "Revert \"Revert \"Use compiler filter to determine oat file status.\"\"\n\nThis reverts commit 845e5064580bd37ad5014f7aa0d078be7265464d.\n\nAdd an option to change what OatFileManager considers up-to-date.\nIn our tests we\u0027re allowed to write to the dalvik-cache, so it\ncannot be kSpeed.\n\nBug: 27689078\nChange-Id: I0c578705a9921114ed1fb00d360cc7448addc93a\n"
    },
    {
      "commit": "40c68c690546e8c15dcb2de6137e72c74f573a75",
      "tree": "ec74da146d809e87b388d8d8a1c5241d4dab694c",
      "parents": [
        "3920099f578fd8015777bc3c1c7392a08b1e08e7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 16:35:51 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 16:35:51 2016 +0000"
      },
      "message": "Fix dex2oat/oatdump cross-compilation.\n\nOnly set the ImtConflictTable when not in AOT, to not mess up\nwith the image.\n\nChange-Id: I8f2926ad30dc913d61b0c8957affc25fc8056ada\n"
    },
    {
      "commit": "796d63050a18f263b93ea34951a61deaecab3422",
      "tree": "813865c31b25ac06006e4ee3932b4e918c708c9b",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 13 22:22:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 15:17:58 2016 +0000"
      },
      "message": "Add an ImtConflictTable to better resolve IMT conflicts.\n\n- Attach a ImtConflictTable to conflict runtime ArtMethod.\n- Initially 0, a new one will be created at the first hit of\n  the conflict method.\n- If the assembly code does not find a target method in the table,\n  we will create a new one again, copying the data from the previous\n  table and adding the new mapping.\n\nImplemented for arm/arm64/x86/x64.\n\nbug:27556801\nbug:24769046\n\nChange-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7\n"
    },
    {
      "commit": "a373a33d33b8a5b4fd0d4c35645e2e4353ebde9b",
      "tree": "e739e5fe6f2f034edd91312b316c8dddd1352503",
      "parents": [
        "e2aad5d8dba805e510476ded22737a2adffbef72",
        "c6b1b93f47f5694025b35e8417112b303091dc7c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 11:09:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 22 11:09:37 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable compilation of secondary dex files\"\"\""
    },
    {
      "commit": "c6b1b93f47f5694025b35e8417112b303091dc7c",
      "tree": "51dfd67b5d08142da7b8024faacf20104b2e8402",
      "parents": [
        "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 09:52:40 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 09:52:40 2016 +0000"
      },
      "message": "Revert \"Revert \"Enable compilation of secondary dex files\"\"\n\nBug: 26719109\n\nThis reverts commit d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7.\n\nChange-Id: I523675eb6d647fe773dd57b6e1cc398927bb066e\n"
    },
    {
      "commit": "f8cb1781a4e4be5df1f845206f7b37ed89092b64",
      "tree": "ce2c717d6a99a18f66deace5575357c746f4e2ea",
      "parents": [
        "162629ee8ac0fee2df0c0cdec27dff34bc6f0062"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 18 18:45:41 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 21 11:41:33 2016 -0700"
      },
      "message": "Move process state into runtime\n\nClean up.\n\nBug: 27420435\n\n(cherry picked from commit f8484c8b55f4b423048f94dfabbe44110a039a9b)\n\nChange-Id: Ia20781ee36e6a31c88ca41d3866b26813cff434d\n"
    },
    {
      "commit": "e9e98f12eb5dbe81db90d56c65c8872cabaa855d",
      "tree": "ac547775549ac52c77739b6c6d7f496bf3fa288d",
      "parents": [
        "7f3397bec51bdeb7dfe76a17ea9d3279ddf79345",
        "f448016e70fa91269d3750384aab1ac98d7896fd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 17 20:24:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 17 20:24:30 2016 +0000"
      },
      "message": "Merge \"Do not JIT boot image during native-debugging (keep AOT code instead).\""
    },
    {
      "commit": "04680f3d7b021a0afb460266d442f564186a3b6f",
      "tree": "47acec9c78b982555e7a4fdfa2c685ded0d46a76",
      "parents": [
        "0205b58a0d7a9ce5832393857c19c086c78996e9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 17 11:56:54 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 17 13:51:47 2016 +0000"
      },
      "message": "Dump oat file information as part of DumpForSigQuit.\n\nChange-Id: Ie8d256d8fa16565105cfe5c39cc96826983469da\n"
    },
    {
      "commit": "f448016e70fa91269d3750384aab1ac98d7896fd",
      "tree": "9bb4414c763d13c2e178472d3bf1ee73bce97392",
      "parents": [
        "8e57978b5f330a322f05644c2db7fa8ce89b1b46"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 16 00:06:24 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 17 11:54:49 2016 +0000"
      },
      "message": "Do not JIT boot image during native-debugging (keep AOT code instead).\n\nThe performance impact is currently significant and being able\nto debug framework is not our primary goal for native debugging.\n\nChange-Id: I3366c2a6317004f9dd16700b271a6c9b974f1c6e\n"
    },
    {
      "commit": "db1f7dac02f6dcecac3e032f10abbcdbf3cf4331",
      "tree": "ce075b131513e65de9354001a37ba90f3a2b6787",
      "parents": [
        "e848c29bb35d91f23bb6f52712aa7f2dff342ea0",
        "a1425a1c9c98ae3fc772834933a5d55566fb5699"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 17 01:03:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 17 01:03:54 2016 +0000"
      },
      "message": "Merge \"ART: Remember whether the cache was pruned\""
    },
    {
      "commit": "0cb11c3dc6c3e7c3521b49ab0be9138c60037eba",
      "tree": "faae3886e98a34af6a323a9572ad6def1961fa50",
      "parents": [
        "914d71ead70bb6f2084b2ed39a9fd58fd014f67d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 16 15:11:15 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 16 15:12:38 2016 +0000"
      },
      "message": "runtime: delete native/java_lang_Runtime.h.\n\nNow unused, except for an unnecessary include.\n\nbug: 27387202\nChange-Id: Ie77dc0da156a64e8ea03af1878b44d20c16c5ae5\n"
    },
    {
      "commit": "5f97157263d1b52bf4aea523b28294b21d694da1",
      "tree": "46a2a5102b97f4bb0711c721e3580606f3bde093",
      "parents": [
        "5681b6638b0001c62d02795b0853e2e82787edf1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 15 14:47:29 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 15 15:20:00 2016 +0000"
      },
      "message": "runtime: delete native/java_lang_Runtime.cc\n\nWe\u0027re now using Runtime.c from ojluni, which does the same set\nof things via the JVM interface. This removes unnecessary duplication\nof code between Runtime.cc and OpenJdkJvm.cc.\n\nAlso includes a few changes to JVM_NativeLoad to bring it in sync\nwith the version in Runtime.cc.\n\nbug: 27387202\nChange-Id: I92aac81d131661aca588e352aee7a167593e17d4\n"
    },
    {
      "commit": "a1425a1c9c98ae3fc772834933a5d55566fb5699",
      "tree": "46afe5a4d47aa2979b2eca89f834f6c90c94c61b",
      "parents": [
        "5681b6638b0001c62d02795b0853e2e82787edf1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 11 17:44:04 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 15 07:58:07 2016 -0700"
      },
      "message": "ART: Remember whether the cache was pruned\n\nRemember (and expose) whether the cache was pruned when initializing\nthe runtime.\n\nBug: 27618311\n\n(cherry picked from commit 7ef1b4b20bd7cf485f5e443927c1e6fa797a0439)\n\nChange-Id: I178d18d731a9dce5cb11ed0874c9c9c9d36d7d8e\n"
    },
    {
      "commit": "0b4cbd0c2a75b47ae09d21e5d73d2b1709cb5b9e",
      "tree": "72572a01a181c12272a5570ae8b4d41e9ef553f8",
      "parents": [
        "c3214fbb66b5f4c436c44d027df5046c803f6432"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 08 16:49:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 14 17:07:11 2016 -0700"
      },
      "message": "Add oatdump support for app images\n\nExample usage on host:\noatdumpd --app-oat\u003dart/plus32.odex --app-image\u003dart/plus32.art\n--image\u003dart/oats/system@framework@boot.art --instruction-set\u003darm\n\nTODO: Add to oatdump test.\n\nBug: 27408512\nBug: 22858531\n\n(cherry picked from commit bcb6a72569a1401b36a3ad3b6aa4d13e29966cf0)\n\nChange-Id: I9d1aa7eaa16795e5fbabc6974d245849e16b1d03\n"
    },
    {
      "commit": "e70cda6147e2e49384a219b167a6c734a8db28f5",
      "tree": "ea627d88f7423c50b0ba7d2627c09f970a86f91f",
      "parents": [
        "14cc147fbd09d5ef0ba5c724a7287ac6770ae330",
        "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 14 15:54:55 2016 +0000"
      },
      "message": "Merge \"Revert \"Enable compilation of secondary dex files\"\""
    },
    {
      "commit": "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7",
      "tree": "4490895063571fb10eac32ba0b4a2a5b8a749c14",
      "parents": [
        "770b39eb564ec16c672ace83515535b055edb2b1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:39 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:39 2016 +0000"
      },
      "message": "Revert \"Enable compilation of secondary dex files\"\n\nReverting until we fix the buildbot failures on jdwp and libcore.\n\nBug: 26719109\n\nThis reverts commit 770b39eb564ec16c672ace83515535b055edb2b1.\n\nChange-Id: Ifba366d2ddc9311737b6ea29c007475a40cc803f\n"
    },
    {
      "commit": "fb8932eec4c09c34dfe759ba151e751293245c0d",
      "tree": "c4691de9880d423d14e08d9a03882a7292ae8c77",
      "parents": [
        "971c69db916d66096dccd481df621cee7147d20c",
        "770b39eb564ec16c672ace83515535b055edb2b1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 14 11:38:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 14 11:38:24 2016 +0000"
      },
      "message": "Merge \"Enable compilation of secondary dex files\""
    },
    {
      "commit": "770b39eb564ec16c672ace83515535b055edb2b1",
      "tree": "51dfd67b5d08142da7b8024faacf20104b2e8402",
      "parents": [
        "f529e9bc50abb507e75ac425f6333b2406d405af"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 17:17:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 17:17:03 2016 +0000"
      },
      "message": "Enable compilation of secondary dex files\n\nDexClassLoader should be allowed to compile the secondary dex files if\nneeded. Adding interpret-only flag when using JIT prevented that.\n\nNote that primary apks are loaded with a PathClassLoader and which\nshould not attempt to compile the dex files.\n\nBug: 26719109\nChange-Id: I29323bc48160c3c70fea4244e502e43a4b0a678c\n"
    },
    {
      "commit": "87aa99c261a7921e28fbe6136197bb640ddef4a4",
      "tree": "4ce329a356f3289cdcee9b64a1b911d7b25a2590",
      "parents": [
        "a9778b24bfb8007f20caff7a082e8b4531a14dae",
        "c90bc92bc577020ff4d3caced4cee1cdf41fa5de"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 11:57:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 09 11:57:24 2016 +0000"
      },
      "message": "Merge \"Record foreign dex files loaded by the app in the profile\""
    },
    {
      "commit": "32ce2adefb8a3d0eda59a29f5e87c1eb43eef796",
      "tree": "50aaa40b31ede355359765259edc7989485cc7d5",
      "parents": [
        "c71dc3852edfa8e0cd2083d12845ff8607e189ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 14:58:03 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 18:37:19 2016 -0800"
      },
      "message": "Add more systracing everywhere\n\nAdded to:\nJIT\nDexFile functions\nOat file manager\n\nAdded helper ScopedTrace to prevent errors and reduce excess code.\n\nBug: 27502458\n\n(cherry picked from commit dabdc0fe183d4684f3cf4d70cb09d318cff81b42)\n\nChange-Id: Ifaeff8913d79eefc797380987d13cc00456266f8\n"
    },
    {
      "commit": "9bab082adb251327b806d537d6710c16b9897de9",
      "tree": "bb7deb63cfea2672cbdea4a882a001d91982dcd9",
      "parents": [
        "19a133b2e26770b900119aaac25e3e73bd287e3f",
        "942dc298d7af3e60fe40c69b4b416ef144e5c723"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 03 17:05:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 17:05:16 2016 +0000"
      },
      "message": "Merge \"Simplify LoadNativeLibrary()\""
    },
    {
      "commit": "c90bc92bc577020ff4d3caced4cee1cdf41fa5de",
      "tree": "1a10edfaecfe09cb07b61857a4e22a50cda04047",
      "parents": [
        "f9f3c5b0ebacbfed59af9c5c81fe9752e6b1258c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 24 10:13:09 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 02 13:04:21 2016 +0000"
      },
      "message": "Record foreign dex files loaded by the app in the profile\n\nA foreign dex file is a file which is not owned by the app\n(it\u0027s not part of its code paths or its private data directory).\n\nWhen such a dex file is loaded by the app, the runtime will record\na marker in a dedicated profile folder (foreing_dex_profile_path).\nThe marker is just a file named after the canonical location of the\ndex file where \u0027/\u0027 is replaced by \u0027@\u0027.\n\nThe markers will be used by the system server system server to\ndecide if the apk should be fully or profile guide compiled.\n\nBug: 27334750\nBug: 26080105\n\n(cherry picked from commit 86a9ebe4197e963249ffbbaa1830da97ed642fa5)\n\nChange-Id: I8be1fd4d854fa1e23c3c1054c9c083ad7b27317b\n"
    },
    {
      "commit": "25e0456b6ea13eba290b63ea88b6b7120ed89413",
      "tree": "212c7433997a9e498ce68136ab511ae366e983e9",
      "parents": [
        "47bce25b3eaf5c0e1d46f0555eaf4676f958a7a7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "message": "Give the JIT its own arena pool to avoid lock contentions.\n\nSharing it with the verifier and the class loader is not ideal,\nespecially at startup time.\n\nbug:27398183\nbug:23128949\nChange-Id: I1b91663a13f6c5b33ad3b4be780d93eb7fe445b4\n"
    },
    {
      "commit": "942dc298d7af3e60fe40c69b4b416ef144e5c723",
      "tree": "3bfac9efaea9dcf73fbd2aed93f72db7bf7fa1b3",
      "parents": [
        "48a13431f09ff9bbdcd1ee991da6a04e694c5134"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 13:33:33 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 26 11:41:11 2016 -0800"
      },
      "message": "Simplify LoadNativeLibrary()\n\nWith ApplicationLoaders.getClassLoader() ensuring\nlinker-namespace initialization there is no longer\nneed for LoadNativeLibrary() and callers to pass\nalong namespace-specific information to art.\n\nThis change removes unnecessary parameters of such\ncalls.\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: I341d35a2d5195e634678b352f4361f8712984b69\n(cherry picked from commit c286a7fcd8a446c086127bf03fd07f904e017336)\n"
    },
    {
      "commit": "c66577ece35b73250f2078d8d59ac661a95a63d0",
      "tree": "927de986fc4eeb270428a07fda91569c09ac6abe",
      "parents": [
        "ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 25 08:50:50 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 25 08:50:50 2016 +0000"
      },
      "message": "Revert \"Preload public libraries on Runtime::Start()\"\n\nBreaks anyone not working on up-to-date devices/trees. I\u0027ll work on a revert of the revert.\n\nBug: http://b/27245894\n\nThis reverts commit ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9.\n\nChange-Id: Ie8fc286a64de4db2c905502a528005022803ed94\n"
    },
    {
      "commit": "ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9",
      "tree": "f75edd10a60aab5b7c1ac1bf210b35cd2913d425",
      "parents": [
        "4e4e64511e530db37b33f450016afe49db3c4b20"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 14:26:48 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 16:42:50 2016 -0800"
      },
      "message": "Preload public libraries on Runtime::Start()\n\nPreloading public libraries on Runtime::Start()\ninstead of doing it in native_loader c-tor\nensures that the libraries are loaded only for\nbinaries that are using Android Runtime, and not\njust linking against libandroid_runtime or libart.\n\nLoading public libraries on Runtime::Start()\nalso helps some apps to save startup time and space\nby ensuring that all NDK libraries are loaded\nand ready to use.\n\nBug: http://b/27245894\nChange-Id: I15679a72450f3d18a7dd503d0ae977cebcfd7f52\n(cherry picked from commit 7bca74e53d3665bcd243d4e0277f6561c0c80271)\n"
    },
    {
      "commit": "e4c77b4d37024c1ed74e72494e69605942fead61",
      "tree": "5f0de5a63585b661ec0e551c6d172a441150569f",
      "parents": [
        "08e992e41e5e234ecc6b38a4ab53d4876fd077b6",
        "ca76a1a0c1737b3e04961ba382c113102fdc00bf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 10:52:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 23 10:52:23 2016 +0000"
      },
      "message": "Merge \"Dex-wide ArenaPool scoping for AOT compilation\""
    },
    {
      "commit": "ca76a1a0c1737b3e04961ba382c113102fdc00bf",
      "tree": "c2a2adce6d3bc78be4b34ed7f7982155b4c5eefc",
      "parents": [
        "99da8cd8818e015b21d1c2af73ac40749698c930"
      ],
      "author": {
        "name": "Jean-Philippe Halimi",
        "email": "jean-philippe.halimi@intel.com",
        "time": "Tue Feb 02 19:48:52 2016 +0100"
      },
      "committer": {
        "name": "Jean-Philippe Halimi",
        "email": "jean-philippe.halimi@intel.com",
        "time": "Fri Feb 19 13:43:24 2016 +0100"
      },
      "message": "Dex-wide ArenaPool scoping for AOT compilation\n\nThe Arena Pool is a structure that holds memory allocated by the Arena\nAllocator, preventing system allocations and deallocations to occur too often\nduring AOT compilation. Currently, the Arena Pool holds memory it allocates\nduring the whole AOT compilation process. Unfortunately, such a behavior\ngenerates memory usage overhead, which is exacerbated by bigger applications\nsuch as Facebook.\n\nIn this particular app, method size imbalance provokes unnecessary memory\npressure, as one method might require a lot of arena allocations that won\u0027t be\nused in the remaining compilation. Because the compiler memory footprint keeps\nincreasing during AOT compilation, the memory pressure becomes very high.\n\nThe proposed patch is an attempt to find a tradeoff between allocations /\ndeallocations time overhead, and the aforementioned memory pressure overhead\nresulting of the allocations being held by the Arena Pool. The patch adds a\nfeature freeing up all memory allocated in the Arena Pool after each dex file\nis done compiling.\n\nWe have measured no significant AOT compile-time overhead with the patch\n(\u003c0.3%), because the selected dex-file granularity is coarse enough. In the\nmeantime, it provides significant memory footprint improvements. The impact is\nespecially big with Facebook, because this app has a few methods generating\nhuge memory footprint peaks (peak native heap footprint goes down 34%).\n\nChange-Id: I27e867e6a20b8a6c28a82cb83140941a8c2b5847\nSigned-off-by: Jean-Philippe Halimi \u003cjean-philippe.halimi@intel.com\u003e\n"
    },
    {
      "commit": "5b82d339955d1a0dc23eeb8d2d5659459ff987ba",
      "tree": "79540d831ec7ac82f5520dc6bc53ac8c39f47972",
      "parents": [
        "d9c05309e8fab26a6087abd5773859f112cdefe9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:22:32 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:33:13 2016 +0000"
      },
      "message": "The JIT does not need VerifedMethod nor CompilerCallbacks.\n\nbug:27173201\n\nChange-Id: I971659f9ff6a8b780c94a7bed84de90fa9fc3456\n"
    },
    {
      "commit": "a73280df8cac1279b6dea0424722f42ef0048613",
      "tree": "22adc28cc88bc440b8e28a13a389c3a3c2b22341",
      "parents": [
        "47a2a45a6673ddf3322115ff5058763f82a9368f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 13:05:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 16:24:56 2016 +0000"
      },
      "message": "Add an option to disable native stack dumping on SIGQUIT.\n\nSome of our (stress) run-tests do ANR dumping, which end up\nstressing libunwind, that has known problems. To avoid getting\nflakes due to libunwind, disable native stack dumping on SIGQUIT\nfor our run-tests.\n\nbug:27185632\nbug:24664297\nChange-Id: I69085e48db903d6240448d71666ae2dcd091922e\n"
    },
    {
      "commit": "6eb6a39bdcf669655190d40d20f8d2e663b262f4",
      "tree": "1b56bd9527b56c8d24598245de0597bbb4f73d50",
      "parents": [
        "0665090c880ec22655ff8b82084746c4407ea792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 10 20:18:37 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 12 16:26:03 2016 -0800"
      },
      "message": "ART: Simplify patchoat\n\nRemoved unused configurations. Cut out cruft that isn\u0027t used anymore\nsince multi-image. Make it smaller to not require new selinux\npermissions for OTAs.\n\nSplit up the main function, to make the flow clearer for image vs\napp/oat.\n\nBug: 25612095\nBug: 26317072\n\n(cherry picked from commit 02bc0b70beedfe258c2147c2b4a205fbf3d6eebc)\n\nChange-Id: Ieb55bd1a13cbb44fd0e2979a8a61a509df9c1e7e\n"
    },
    {
      "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"
    }
  ],
  "next": "1452bee8f06b9f76a333ddf4760e4beaa82f8099"
}
