)]}'
{
  "log": [
    {
      "commit": "7fe56583220d813980f2241e0df13f5aa6627611",
      "tree": "3d89b9a43c162cfd613e7538302115d9ca3d08d0",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 14 18:49:12 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 17 16:29:32 2016 +0100"
      },
      "message": "Fix handling of dex cache arrays for method types.\n\n- Add support for relocating method type dex cache arrays.\n- Add missing call to MethodTypeDexCachePair::Initialize in the\n  class_linker.\n- Fix alignment calculation for method_types in\n  DexCacheArraysLayout.\n- Removed unused MethodTypeOffset(uint32_t) method.\n\nFixes tests with --pic.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I2bba7228762b9e9834e7659fe62090be78afdfa8\n"
    },
    {
      "commit": "25352fc06c84cdab8a2ab6d173b0514066ade2b9",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "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": "Mon Oct 03 09:48:50 2016 +0100"
      },
      "message": "class_linker: Add support for resolving method types.\n\n- Add a new fixed size dex cache array for resolved method types.\n  The size of this array is set to 1024.\n- Also introduces a new runtime flag that controls this feature.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I147b33398d71ee21f2e91b418d3700d4630801ff\n"
    },
    {
      "commit": "bda1d606f2d31086874b68edd9254e3817d8049c",
      "tree": "db07417935fe72e99c3da60152e13f0620c7d8d7",
      "parents": [
        "d14d515df39cd963179088b8721768f9645243aa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 29 17:43:45 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 08 10:13:47 2016 -0700"
      },
      "message": "ART: Detach libart-disassembler from libart\n\nSome more intrusive changes than I would have liked, as long as\nART logging is different from libbase logging.\n\nFix up some includes.\n\nBug: 15436106\nBug: 31338270\nTest: m test-art-host\nChange-Id: I9fbe4b85b2d74e079a4981f3aec9af63b163a461\n"
    },
    {
      "commit": "6353a6340e45a3df4178602c3ec20fd5721a7613",
      "tree": "293fb5bf9f642b08569bbf1af4c30926ef1441de",
      "parents": [
        "5a5d0faab643eb07ba33d91d47484878c1450b44"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 15:58:05 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 16:06:18 2016 -0700"
      },
      "message": "ART: Added DCHECKS to find alignment breakage.\n\nChange-Id: I47aed866ec3c3858dc3ee27cb84cfaddf44009d1\n"
    },
    {
      "commit": "9210ce973ea180f6c5109f262068d433b1da5bc0",
      "tree": "1e2b15cf790cab2de795df5f7bbc189992a0b9ca",
      "parents": [
        "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 13:28:19 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 13:28:19 2016 -0700"
      },
      "message": "ART: Fixing build breakage.\n\nCaused by Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e.\n\nChange-Id: Ia0c0fbcb6c8b141c5ee30a89ab6bc1c653916698\n"
    },
    {
      "commit": "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23",
      "tree": "bb6e65a3434806dc58f286ee75ad3b78ba9d6c36",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 10:37:42 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 16:18:36 2016 -0700"
      },
      "message": "ART: Implement a fixed size string dex cache\n\nPreviously, the string dex cache was dex_file-\u003eNumStringIds() size, and\n@ruhler found that only ~1% of that cache was ever getting filled. Since\nmany of these string dex caches were previously 100,000+ indices in\nlength, we\u0027re wasting a few hundred KB per app by storing null pointers.\nThe intent of this project was to reduce the space the string dex cache\nis using, while not regressing on time that much. This is the first of a\nfew CLs, which implements the new fixed size array and disables the\ncompiled code so it always goes slow path. In four other CLs, I\nimplemented a \"medium path\" that regresses from the previous \"fast path\"\nonly a bit in assembly in the entrypoints. @vmarko will introduce new\ncompiled code in the future so that we ultimately won\u0027t be regressing on\ntime at all. Overall, space savings have been confirmed as on the order\nof 100 KB per application.\n\nA 4-5% slow down in art-opt on Golem, and no noticeable slow down in the\ninterpreter. The opt slow down should be diminished once the new\ncompiled code is introduced.\n\nTest: m test-art-host\n\nBug: 20323084\n\nChange-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e\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": "0d4909e45fb5f3c4d8ce568890fc9cedad44202c",
      "tree": "e97f580b40ff56d0f8dcc32db2f9589027b8a7f4",
      "parents": [
        "a89d6d630b6fdb591d3dce536f8bca35deae307e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 20:27:08 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 20:38:58 2016 +0000"
      },
      "message": "ART: Fix rounding up in DexCacheArraysLayout constructor.\n\nThis changes the way we round up to be conceptually correct\nbut does not really affect the results thanks to current\nlayout that interleaves GcRoot\u003c\u003e and pointer arrays. If two\nodd-length GcRoot\u003c\u003e arrays were followed by a pointer array,\nthe pointer array would have been previously unaligned on\na 64-bit target.\n\nChange-Id: I6b1cd2ed789f4f91206982caf3c765253fb65824\n"
    },
    {
      "commit": "69a0405e79fc9b61e90d6cf0364f85f10fa29a36",
      "tree": "a66ef0cb27a644aac1aa150b0ec79db1f78da38a",
      "parents": [
        "5b38b35dd8519787dd801508c30309a2da8c8fa3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 14:43:28 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 17:03:42 2016 +0000"
      },
      "message": "ART: Clean up strings fixup for app images.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/199854 .\n\nBug: 26846419\nBug: 22858531\nChange-Id: Ib2b2c299c51686afb7f297697125296705ed77b8\n"
    },
    {
      "commit": "1aa8ec2ccdd7bedb6d30d91c89f1e94ab23c4439",
      "tree": "7b2079631ed5d8350c63c7ed3f6d0393e951ce8c",
      "parents": [
        "c3cf1d2e35a45bd2e2c60fbc9c2a1a6a56dfc529"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 01 10:34:47 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 01 19:58:25 2016 -0800"
      },
      "message": "Fix up dex cache strings stored in classes\n\nPreviously we left the image pointer instead of fixing up the pointer\nto the one in the BSS. This only showed up because JIT does the same\nas boot image, bypassing null check.\n\nFixed a bug where oat files without embedded dex cache arrays would\nget their dex cache arrays corrupted.\n\nAdded a non virtual class visitor for performance.\n\nBug: 26846419\nBug: 22858531\n\nChange-Id: I8cd0d61e440f753b4628ddb8c932eb23a0a81027\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": "09d0943f5efe92c1f3a6b9dbdf255adb0f960a22",
      "tree": "7521bf5eefaa84f1cd18c2d601ac0891cc1598a5",
      "parents": [
        "644044333f5f6d7ba7e327619ac0d0ce4e2609d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 13:47:48 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 15 16:46:41 2015 +0100"
      },
      "message": "ART: Use .bss section for dex cache arrays.\n\nChange-Id: I5fd507973b56f6a662a02a8c1dd9ac4493fb7b36\n"
    },
    {
      "commit": "05792b98980741111b4d0a24d68cff2a8e070a3a",
      "tree": "bad79a387bcbdaefc87c07b388099960ca9caff3",
      "parents": [
        "c26b4512a01d46756683a4f5e186a0b7f397f251"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 03 11:56:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 17:30:57 2015 +0100"
      },
      "message": "ART: Move DexCache arrays to native.\n\nThis CL has a companion CL in libcore/\n    https://android-review.googlesource.com/162985\n\nChange-Id: Icbc9e20ad1b565e603195b12714762bb446515fa\n"
    }
  ]
}
