)]}'
{
  "log": [
    {
      "commit": "2969bcdcd80624e4a4fef696b54c2c76b44b6853",
      "tree": "a097d139d5525ec2af6682f3e37bda94dead8cc9",
      "parents": [
        "f719fdd20e6282f3579cb99529bb65e852612647"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 09 12:57:41 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 11 09:27:03 2015 -0700"
      },
      "message": "ART: Refactor unstarted runtime\n\nRefactor and clean up unstarted runtime.\n\nBug: 19542228\nChange-Id: Ib3e4b3517e06e8242d4fed32ca59419fef553a47\n"
    },
    {
      "commit": "41b15f9f06c7e2e5aac13f709c66412e6c299b67",
      "tree": "612885348ebff77bd74b2bef63112f864563b6e7",
      "parents": [
        "3b5408b565509341301e6da82f3d07c75aad5f51",
        "6ea651f0f4c7de4580beb2e887d86802c1ae0738"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 06 21:06:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 06 21:07:44 2015 +0000"
      },
      "message": "Merge \"Initial support for quick compiler on MIPS64r6.\""
    },
    {
      "commit": "6ea651f0f4c7de4580beb2e887d86802c1ae0738",
      "tree": "fd97dcbd7301892cb785ca34aee21ad86437c3b3",
      "parents": [
        "0e242b5cad3c0b68b72f28c1e5fd3fdd4c05bfd8"
      ],
      "author": {
        "name": "Maja Gagic",
        "email": "maja.gagic@imgtec.com",
        "time": "Tue Feb 24 16:55:04 2015 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 06 13:05:47 2015 -0800"
      },
      "message": "Initial support for quick compiler on MIPS64r6.\n\nChange-Id: I6f43027b84e4a98ea320cddb972d9cf39bf7c4f8\n"
    },
    {
      "commit": "a11a34c908e847711e6ccf221d61b45d0c4c963d",
      "tree": "eeb7d47eec30c3850b450f77c21a34a66cd80e9c",
      "parents": [
        "b341b70b2418922d9b792cdba96d22bece87c55a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 06 08:44:45 2015 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 06 08:44:45 2015 -0800"
      },
      "message": "Do not dump memory usage if driver was never created\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d158593\nChange-Id: I8084f9ac823910aa11f854f3e764240741fbf0d5\n"
    },
    {
      "commit": "6cf49e57ad7a61e1fffd5b1dfae9179c3ca5703d",
      "tree": "126d4a09078ebfb6b5eed5d67d6300217132a1bb",
      "parents": [
        "66b26662ad0c52c648c9b5ea4a99149091e842b4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 13:08:45 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 18:42:21 2015 -0800"
      },
      "message": "ART: Add option to abort dex2oat on hard failure\n\nAdd an option that aborts dex2oat when a hard verifier failure occurs.\n\nBug: 19606409\nChange-Id: I53195284e22fe6207274101e85745af763c06271\n"
    },
    {
      "commit": "c670efd6ba9dbd1166bfd8c805bb6b2df7d4313a",
      "tree": "d112f34d4926e9b6fc3adf9504303fdddb22b7d3",
      "parents": [
        "029113f1013e2ce9027ea241a68f93072ce1bfe9",
        "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 21:12:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 04 21:12:27 2015 +0000"
      },
      "message": "Merge \"ART: Add debuggable compiler flag\""
    },
    {
      "commit": "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394",
      "tree": "be2f01bfa3e326ea10ee3a670cca8e41a5abaa6d",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 02 14:07:33 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 12:19:44 2015 -0800"
      },
      "message": "ART: Add debuggable compiler flag\n\nAdd a flag to compiler options that shows debuggability.\n\nChange-Id: Id17ec72babe2ee88713a0d274eff86508de30666\n"
    },
    {
      "commit": "86a4db469e9ab31d6574a58fe67702c7fc5222d7",
      "tree": "957eae3e59861671b7043640d68958c6b80a4989",
      "parents": [
        "0e5e728a4a4f042f157e1897cc8bbc2b0bb110b1",
        "f3c7ba6a5759873138fbf4ae24a216dc0d87a3fe"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 03 23:32:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 03 23:32:32 2015 +0000"
      },
      "message": "Merge \"Remove ART_SMALL_MODE ifdefs.\""
    },
    {
      "commit": "f3c7ba6a5759873138fbf4ae24a216dc0d87a3fe",
      "tree": "f2acaf88a41bc9237fabc8234b5bf4a8e6bb7ac1",
      "parents": [
        "f5c224cca603ef1dba9bb80952613facc22598fa"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Feb 23 15:32:43 2015 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 02 18:29:58 2015 -0800"
      },
      "message": "Remove ART_SMALL_MODE ifdefs.\n\nWITH_ART_SMART_MODE now sets --compiler-filter options instead.\nHas a corresponding change to /build\n\nBug: 19460766\nChange-Id: I295ebbd49caa5341834141f7c2bbf8df830131ed\n"
    },
    {
      "commit": "1d00addb6e6a6d0386cba393774031dbd88121ba",
      "tree": "9a0f9d86dd97fbe5ca55208d685e7f87a2d0501b",
      "parents": [
        "02abb5075f3085e69c0c81fb5724c066f6c845b7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 19:35:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 20:16:40 2015 -0800"
      },
      "message": "ART: Allow dex2oat for apps only with image\n\nDo not allow a runtime without image when compiling an app. This\navoids the current abort when we then try to run out of the (missing)\nboot classpath.\n\nBug: 19100590\nChange-Id: Ic269dc2fa807d003215ea134cb42fe4c4d78124e\n"
    },
    {
      "commit": "794ad76e8d5b5b9132819d5b08a0570e27615644",
      "tree": "74b420e4337ecf9e5df689cc376fa965d765a908",
      "parents": [
        "d98ff78976696fdde1e7868d4687719a0439544b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 08:12:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 10:23:06 2015 -0800"
      },
      "message": "ART: Introduce NO_RETURN, Mark DoLongJump noreturn\n\nAdd NO_RETURN macro that adds C++11 noreturn attribute. Mark\nDoLongJump methods as noreturn.\n\nChange-Id: Ifde4318e370493237050d4c1349285a0382df23f\n"
    },
    {
      "commit": "5bdab12d8b48ca4c395d9d2c506ebff0df01b734",
      "tree": "eef73cc00cd45cc16ddcd856f9bc84d0c8edb4e1",
      "parents": [
        "f913ff3f7e37c1b2c7f2fb96120c2b5b25d962a7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 26 18:30:19 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 28 17:16:11 2015 -0800"
      },
      "message": "Clean up pass driver\n\nAdded pass manager to hold the state which used to be in global\nvariables.\n\nStatic variables caused issues with Runtime.exit since they are\ndestroyed by the global destructors while threads are still\nexecuting.\n\nBug: 17950037\nChange-Id: Ie0e4546dc9e48909c8df996a5c135be682d50044\n"
    },
    {
      "commit": "8d295f8f0e88fa5c6373962d545020a06033b3fc",
      "tree": "3e0126a90a320dece1755fd5ae3852d0e618c19d",
      "parents": [
        "97d9f286971a4c1eec70e08f9f18f990d21780d5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 20 14:50:21 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 20 14:50:21 2015 -0800"
      },
      "message": "ART: Curb dex2oat verbosity\n\nOnly print dedupe collisions in a debug build or on verbose logging.\n\nChange-Id: I08bd04a453d95b6dba6cf6955b5741cd97daf480\n"
    },
    {
      "commit": "0223a19fa4fc39ba89de2b87b03b98a5fd97778b",
      "tree": "0d1fdc9eb33ba27ec5fcb784ac8fee794936d8ce",
      "parents": [
        "726078d229fdb2857f3d8794fa50783f571cb7a2",
        "57b34294758e9c00993913ebe43c7ee4698a5cc6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 19:34:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 15 19:34:26 2015 +0000"
      },
      "message": "Merge \"ART: Allow to compile interpret-only mips64 files\""
    },
    {
      "commit": "57b34294758e9c00993913ebe43c7ee4698a5cc6",
      "tree": "981821619027686f83fbe00445299b0522f1df05",
      "parents": [
        "4945bfef00ac446d9c5458e55500229d463ab4c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 14 15:45:59 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 11:32:48 2015 -0800"
      },
      "message": "ART: Allow to compile interpret-only mips64 files\n\nInclude enough infrastructure to allow cross-compiling for mips64,\ninterpret-only. This includes the instruction-set-features, frame\nsize info and utils assembler.\n\nAlso add a disassembler for oatdump, and support in patchoat.\n\nNote: the runtime cannot run mips64, yet.\n\nChange-Id: Id106581fa76b478984741c62a8a03be0f370d992\n"
    },
    {
      "commit": "1c1d40ab7fd856eac52e1a3be7ce60da3fc21fb5",
      "tree": "72df746c7d012f559e898707f7a039c034473d8d",
      "parents": [
        "cbabd3cba33662b296df7c1d392bdd35b3c978ad",
        "866c03125a3fcd74c9fff04da87865f5eb1767d9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 15 00:02:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 15 00:02:31 2015 +0000"
      },
      "message": "Merge \"ART: dex2oat flag for HGraphVisualizer dump file\""
    },
    {
      "commit": "127d933868b767eca1ec5446e91a3e8df65c659e",
      "tree": "929a8d16f6899a5331c2443fbb0f5f5cf90c9196",
      "parents": [
        "c5573c29b7d7af0815e0e7b0ae241aafb52817a5",
        "fbef44de596d298dc6430f482dffc933a046dd28"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "message": "Merge \"Use unique_ptr to track ownership of dex files.\""
    },
    {
      "commit": "c5a3ea7522b59c18daa4325d69703a6f7f743378",
      "tree": "22aced955bae73c2f032e7cd0fc970218a908419",
      "parents": [
        "d277efe59cc922f6070056dc130e29281cc4955a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 16:41:53 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 20:19:56 2015 -0800"
      },
      "message": "ART: Introduce Mips32 R6\n\nAdd an instruction-set feature for Mips R6. Currently restricted\nto the interpreter.\n\nChange-Id: Ic6d888e135bc87340229a0543dd94d0c1e863edd\n"
    },
    {
      "commit": "fbef44de596d298dc6430f482dffc933a046dd28",
      "tree": "57345e86b7dda80b82a263069230b7e312db5ef2",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 23 09:48:51 2014 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 13 16:32:34 2015 -0800"
      },
      "message": "Use unique_ptr to track ownership of dex files.\n\nBug: 18809837\nChange-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a\n"
    },
    {
      "commit": "866c03125a3fcd74c9fff04da87865f5eb1767d9",
      "tree": "497bafc21358961524a6ef9bb045d522b91d8d27",
      "parents": [
        "07ab4ec97221d882322a1ce064557202150f44ea"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 21:21:31 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 21:21:31 2015 +0000"
      },
      "message": "ART: dex2oat flag for HGraphVisualizer dump file\n\nThis patch adds a new \u0027--dump-cfg\u003d\u003cfile\u003e\u0027 flag to dex2oat which\nspecifies the file that HGraphVisualizer will store its output into.\nUntil now the graph was dumped to \u0027art.cfg\u0027 in the current working\ndirectory. To make Checker work with run-test, the output directory\nneeds to be customizable.\n\nChange-Id: I4a940f7708b88deea5a0e51d13aed13e52199349\n"
    },
    {
      "commit": "6e73272f093e9dc045c08baae57eebb5dcd6e044",
      "tree": "bffd41529429f9b654ab6824c368191dd5e97719",
      "parents": [
        "54953dfdcb3bb8896d8af2d20adef84fb740ce77"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 19:11:14 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 19:11:14 2015 +0000"
      },
      "message": "Revert \"ART: dex2oat flag for HGraphVisualizer dump file\"\n\nBreaks compilation of tests.\n\nThis reverts commit 54953dfdcb3bb8896d8af2d20adef84fb740ce77.\n\nChange-Id: I868b876c3130be61f1169c5fccdffc0368bee11e\n"
    },
    {
      "commit": "54953dfdcb3bb8896d8af2d20adef84fb740ce77",
      "tree": "5ffa9718d1f20c27fceaff95a1da0558d5d20321",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 18:07:00 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 18:07:00 2015 +0000"
      },
      "message": "ART: dex2oat flag for HGraphVisualizer dump file\n\nThis patch adds a new flag to dex2oat which allows to specify the\nname of the file that HGraphVisualizer will store its output into.\nUntil now the graph was dumped to \"art.cfg\" in the current working\ndirectory. To make Checker work with run-test, the output directory\nneeds to be customizable.\n\nChange-Id: I395c518b987e594e89e5e80f202a96befa41ac20\n"
    },
    {
      "commit": "c275259449ec57987e52d3ab1eda3272b994488f",
      "tree": "ca3a6d182d768f8ef046a33576572a2e46370cc1",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 02 13:28:22 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 08 10:50:38 2015 -0800"
      },
      "message": "Remove back-door bootclasspath option from Runtime\n\nThe \u0027bootclasspath\u0027 option allowed users of the Runtime to load their\nown boot class path DexFiles and pass them directly to the Runtime as\nan option. This obscures the fact that the Runtime must take ownership\nof the boot class path DexFiles.\n\nThis change removes the use of the bootclasspath option by dex2oat and\nthe common runtime tests. For dex2oat, we use the existing\n-Xbootclasspath option instead, and introduce a new\n-Xbootclasspath-locations option to override the dex locations for the\nloaded boot class path dex files. For the common runtime tests, we\nsimply use -Xbootclasspath.\n\nBug: 18809837\nChange-Id: Idfcd4885390bf0f3dc350993756dd337220def73\n"
    },
    {
      "commit": "e21dc3db191df04c100620965bee4617b3b24397",
      "tree": "2ad762c6afb024bf95e1eced3d584649a4d57d23",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 08 16:59:43 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 10:01:27 2014 -0800"
      },
      "message": "ART: Swap-space in the compiler\n\nIntroduce a swap-space and corresponding allocator to transparently\nswitch native allocations to memory backed by a file.\n\nBug: 18596910\n\n(cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9)\n\nChange-Id: I131448f3907115054a592af73db86d2b9257ea33\n"
    },
    {
      "commit": "55037f186fff482084cd5659ff747339eb17ba4e",
      "tree": "a4c696a23f4cbad79c988c77cc3abda372c001aa",
      "parents": [
        "67989fdc0217a8b4477f4e816d64cc2c5459d947",
        "956af0f0cb05422e38c1d22cbef309d16b8a1a12"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 18:18:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 18:18:43 2014 +0000"
      },
      "message": "Merge \"Remove portable.\""
    },
    {
      "commit": "956af0f0cb05422e38c1d22cbef309d16b8a1a12",
      "tree": "b558c804d206dad8da648b815750f1b3c97610ae",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 11 14:34:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 09:33:34 2014 -0800"
      },
      "message": "Remove portable.\n\nChange-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc\n"
    },
    {
      "commit": "6fc59abce810b87b6fb07dbd1e84f9dca02fd487",
      "tree": "775c024115ea1815764c02bb37967f96959572e6",
      "parents": [
        "84c132dd431c37cd381d1e20210b185f87d512f3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Dec 11 14:09:51 2014 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Dec 11 14:09:51 2014 -0800"
      },
      "message": "Fix alloc-dealloc-mismatch failures in dex2oat.\n\nThese errors are for calling `delete` on something allocated with\n`new[]`.\n\nBug: 18202869\nChange-Id: I8032664dd0819740e83a04cd5a0d56e2c097aacf\n"
    },
    {
      "commit": "4a4dd707ad78a0913650f9af8425a6a451b0cdbe",
      "tree": "e362fba870599b5237a9778bafd92a7815de8a94",
      "parents": [
        "355e3b1cc67c263268289021268109ae5432537a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 05 11:55:41 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 05 11:55:41 2014 +0000"
      },
      "message": "Make dex2oat 32bits when HOST_PREFER_32_BIT\u003dtrue.\n\nChange-Id: Id6465c697512f32402bdf71c75e52db47f1fb0a2\n"
    },
    {
      "commit": "63130d07713dc3eaa3ce156e3f7b8f0b0e06cd61",
      "tree": "03567c367798d048d1cdebd0c6ca5c6c79d2fab4",
      "parents": [
        "d421eb47fa27e8e11eaf2a3512ada9fd58b8a12b",
        "088b16e202904114c0fe13900e517b1c15c981c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 22:06:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 22:06:01 2014 +0000"
      },
      "message": "Merge \"ART: Wire up a valgrind-wrapped dex2oat run\""
    },
    {
      "commit": "95b033ba10d0bd5be91ec868280b9b97ad6666be",
      "tree": "05f3666464423eab1a38936de169a5cc87638acf",
      "parents": [
        "b510c82ebaf11cf6f4f215f6237ee6a44861ef10"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 03 22:29:37 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 04 10:27:21 2014 -0800"
      },
      "message": "Remove dex2oat watchdog warning\n\nThe warning output is breaking vm-tests on some devices. It does not\nseem to serve much of a purpose given that it does not go to logcat\nand long running compiles can be identified by the time summary\nprinted at the end of dex2oat.\n\n(cherry picked from commit c1bfaa22570b4f771ae1cd832201b01ec84e32c1)\n\nBug: 18609574\nChange-Id: Iefc3c51be35ceaff0031522c4d6c2cdf5703dcb6\n"
    },
    {
      "commit": "088b16e202904114c0fe13900e517b1c15c981c1",
      "tree": "93a17a620483475bdcd0a438cb8f80056c5d290c",
      "parents": [
        "31bacb9da9c931aa04489b0701172c4a35a20e31"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 03 21:59:27 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 03 22:04:06 2014 -0800"
      },
      "message": "ART: Wire up a valgrind-wrapped dex2oat run\n\nExtend build-art-executable to understand multilib\u003dboth, in which\ncase a stem is necessary. Use name32 for the 32b version, and name\nfor the 64b version (or only version).\n\nCreate both 32b and 64b dex2oat on the host.\n\nExtend the core generation rules to allow a wrapper. Create rules\nto run with valgrind: valgrind-test-art-host-dex2oat.\n\nCurrently this is not wired up to valgrind-test-art-host, as valgrind\nreports an error on exit.\n\nNote: this takes a long time, as by default the debug version of\ndex2oat is used. The author has seen runs of about 6 minutes.\n\nBug: 18605772\nChange-Id: I32c270d2cf8a104f154bdf91875670b03d3f5d3b\n"
    },
    {
      "commit": "ab972ef472001fa113d54486d7592979e33480b3",
      "tree": "08a8bf01ddfc0fd3a012faac2b49fafa5853e56f",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 03 17:38:22 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 03 18:27:43 2014 -0800"
      },
      "message": "Remove method verification results right after compiling a method\n\nThis saves memory since it allows the code arrays from methods\ncompiled in future methods to use the ram we just freed from the\nverification results.\n\nGmsCore.apk:\nBefore: dex2oat took 77.383s (threads: 2) arena alloc\u003d6MB java alloc\u003d30MB native alloc\u003d77MB free\u003d13KB\nAfter:  dex2oat took 72.180s (threads: 2) arena alloc\u003d6MB java alloc\u003d30MB native alloc\u003d60MB free\u003d13KB\n\nBug: 18596910\nChange-Id: I5d6df380e4fe58751a2b304202083f4d30b33b7c\n(cherry picked from commit 25fda92083d5b93b38cc1f6b12ac6a44d992d6a4)\n"
    },
    {
      "commit": "a650e700ddcfef0ad86284b0f0818543a196014a",
      "tree": "f371644862308801796176cb9bda460489691382",
      "parents": [
        "27478e627e08ab42c43d5d934da9ea336ccaf628"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 03 14:28:02 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 03 15:24:28 2014 -0800"
      },
      "message": "ART: Fix unclosed files in dex2oat\n\nUnder some error conditions files are not closed, and the close guard\nwill complain.\n\nBug: 18603475\n\n(cherry picked from commit d97465c3742cc3c82843665f2678b881de29854b)\n\nChange-Id: I7155e3f4f6231844edd375b9302ecf1ba8079950\n"
    },
    {
      "commit": "e3a650a5b332875f8c6a8aca9b54598442b40a4b",
      "tree": "da38f43d0e0181d0f76dd1bbe46047c62ecbc77c",
      "parents": [
        "62070ac9a1c2671a38e37122b4407b9d5a7ce1a6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 18:23:21 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 18:44:15 2014 -0800"
      },
      "message": "Fix mac build\n\nMacs don\u0027t have malloc.h, hopefully this fixes the build.\n\n(cherry picked from commit 6cc5076a1248582cf16bd9a6a1719e0a4c1a1de2)\n\nChange-Id: I94d10d2c3d16893625df210bdd5587eea4a1247f\n"
    },
    {
      "commit": "49285c596bb48a52c42eac4005707e441ef916a7",
      "tree": "2e26792a861d33d9b820fbdd3aae3694d2cc786f",
      "parents": [
        "b5af2641acf9d2e247baaa2ac7674f91b801878d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 15:43:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 17:21:44 2014 -0800"
      },
      "message": "Print memory usage in dex2oat shutdown\n\nExample on mako:\nI/dex2oat (31071): dex2oat took 31.195s (threads: 2) arena alloc\u003d1013KB java alloc\u003d13MB native alloc\u003d32MB free\u003d1490KB\n\nBug: 18069309\n\nChange-Id: I08eac00842be35d4e659bddc8513f2062be725c9\n\n(cherry picked from commit 3029df6d212894647ba0e5c23443c40912c6ecc8)\n"
    },
    {
      "commit": "5055c8e008fef62b23e485504472cd215b1b5bfd",
      "tree": "5767bcd8a3beedbdd57be29ac6a87b524ef23621",
      "parents": [
        "4256440d7566510e13a796176c90841bad29d0e5",
        "dbfe254f5ca96f6c5b2284478597d6140c01a394"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 19:25:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 19:25:07 2014 +0000"
      },
      "message": "Merge \"ART: Print initialization failures to file\""
    },
    {
      "commit": "4586fb6fe8a5df17e5dc02b3c1ae8d284815274f",
      "tree": "d3a23eea80f6fa4bc2a7e21e86e18320860d7624",
      "parents": [
        "33c5aac7efcf82c86a907b321d700e673f95d648"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 16:22:11 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 16:22:11 2014 +0000"
      },
      "message": "Print the right default for the compiler backend.\n\nChange-Id: I7083c640af6e2af1c333d5551ba2391ab672954d\n"
    },
    {
      "commit": "dbfe254f5ca96f6c5b2284478597d6140c01a394",
      "tree": "deb37dd72a728df8cda0e3879f89f13e6e461a2a",
      "parents": [
        "220526b05d4365a1820a694c98527eda2d3dc980"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 25 22:21:42 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 26 15:07:36 2014 -0800"
      },
      "message": "ART: Print initialization failures to file\n\nAdd the ability to print boot image initialization failures to a\nfile.\n\nAdd a tool to convert said file into a Graphviz file.\n\nChange-Id: Iedcc337bdf05654c154aa553236f20bdd15572ee\n"
    },
    {
      "commit": "9bb492a33c97e72d0c43a4ee968e34cc32534981",
      "tree": "93c3b4218e2bdecf80e55ebe77eda6dbeb2df2f9",
      "parents": [
        "dc00c73d24a46c8522176fbc539f3e39710807c2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 23:42:00 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 23:56:30 2014 +0000"
      },
      "message": "Add ART_USE_OPTIMIZING_COMPILER flag.\n\nChange-Id: I86065aec5bfe59729c6a4064a3e54d5b523ca45c\n"
    },
    {
      "commit": "10e477df468a1f6a09236b9b49417d6538c559f0",
      "tree": "92a150d77451c37085952d3cc2c43903bb8ab049",
      "parents": [
        "af6dad6cbb6685f92d7274f9e8c45baa98232c79"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 19 12:57:42 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 20 08:42:34 2014 -0800"
      },
      "message": "ART: Split image and non-image case in dex2oat\n\nExplicitly split out the cases (even if there is redundancy). Have\nexplicit flush and close operations.\n\nChange-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87\n"
    },
    {
      "commit": "4303ba97313458491e038d78efa041d41cf7bb43",
      "tree": "5a5873651db918416c9ff63f4bb06b6eb7f4c71a",
      "parents": [
        "a971100be7870544360fa8a46311ef7f5adb6902"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 01:00:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 18 17:26:06 2014 -0800"
      },
      "message": "ART: Track Flush \u0026 Close in FdFile\n\nImplement a check that aborts when a file hasn\u0027t been explicitly\nflushed and closed when it is destructed.\n\nAdd WARN_UNUSED to FdFile methods.\n\nUpdate dex2oat, patchoat, scoped_flock and some gtests to pass with\nthis.\n\n(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)\n\nChange-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "4bf3ae9930a155f238dfd471413c866912b2579e",
      "tree": "bf97adf68ec9f39be03075664eef5c53576bd72c",
      "parents": [
        "67ab6192a9cf1781521692212fa48889a8d36e94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 13:28:29 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 13 13:25:14 2014 -0800"
      },
      "message": "ART: Compiled-classes list for compiler-driver\n\nSimilar to the image-classes list, introduce a list of class names\nthat are to be compiled when creating a boot image. This defaults\nto all classes.\n\nBug: 18336591\n\n(cherry picked from commit 26318f722958ac1cba6a812026a1377f37c54941)\n\nChange-Id: I95f69afdb500a9defb6795803d4040bbe67c5a01\n"
    },
    {
      "commit": "0d8db99ac5d838f81e0d3be83a5b00d5475edf86",
      "tree": "de1bb824aaf8cb2320ded80394dd65a44355fa52",
      "parents": [
        "36750ca45fcbe4706d3a3419cf7f988a129a876c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 11 14:40:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 09:33:10 2014 +0000"
      },
      "message": "Implement invokesuper in optimizing.\n\n- Ensure dex2oat is in PIC mode, as this will drive the decisions\n  made in the compiler driver, and optimizing only suppots PIC\n  anyway.\n\n- Since invokesuper is sharpened into invoke-direct, also support\n  sharpening of invokeinterface and invokevirtual.\n\nChange-Id: I0a1bd79a13dc1c9e67e3cb11d38f0cd4459968ae\n"
    },
    {
      "commit": "88ec7f45c0e2c3f659048fbe4b1dc78730fdaea8",
      "tree": "fe5479ad8683d4f63344bdcb819642d07629c351",
      "parents": [
        "b7ce2074ef43ff221cdec6ddba953f0b0c67447b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 05 10:18:32 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 23:06:12 2014 -0800"
      },
      "message": "ART: Refactor dex2oat\n\nTake the huge dex2oat main function apart. Move to ScopedLogging.\n\nBug: 18276913\nBug: 17444504\nChange-Id: Iab3d7437d60508088cb16bf33da0c5defbf7ae03\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "263f20b7a04b33f0e4b8f43b9a69ee9a1ddba564",
      "tree": "00b241fb34665cdf905712d8e1b9892fe2ba8498",
      "parents": [
        "26dcecb0ef620fb225cd5dd39f6e41b07e34c83d",
        "872dd8208f00c667af8d9e0fd07fdd0ada56d437"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 18:31:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 30 18:31:28 2014 +0000"
      },
      "message": "Merge \"Tidy and reduce ART library dependencies on the host.\""
    },
    {
      "commit": "872dd8208f00c667af8d9e0fd07fdd0ada56d437",
      "tree": "2f69282f19c72ef157dad9fdc7b6c6daf8a1bf38",
      "parents": [
        "af62cf99a1a4320157e1074c1e65c5fbb0320349"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "message": "Tidy and reduce ART library dependencies on the host.\n\nMove to shared rather than static libraries. Avoids capture of all static\nlibraries library dependencies.\n\nChange-Id: I2be96e92dad4ed1842d76b044745f2a2e15372eb\n"
    },
    {
      "commit": "70587a24fdec9a14192e57fe148aeb3374b10635",
      "tree": "cda22f3057827eb85090ad0c83a884c8e65c51e7",
      "parents": [
        "af62cf99a1a4320157e1074c1e65c5fbb0320349"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 29 09:35:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 29 09:35:44 2014 -0700"
      },
      "message": "ART: Fix multi-image testing\n\nAlso, make an unknown compiler backend string fail dex2oat.\n\nChange-Id: I878aef47d3c2c84b8479420e1a7ea2852993de35\n"
    },
    {
      "commit": "46774767fcf7780d1455e755729198648d08742e",
      "tree": "09a5d87ff0acbc7eb1fa94ec901ba10009178f03",
      "parents": [
        "11bd683f6dbebe2f3d02fa383fc9dbc69a83ace8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 27 20:19:37 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "7ba649636c4475c3992fa15a57acd2546d69ff38",
      "tree": "63b3e30483d2a838bcaa3337535d4828f3c1ea33",
      "parents": [
        "e74b720d752469d3883f3589de863e8fc82c6338"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 23 11:37:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 27 18:52:28 2014 -0700"
      },
      "message": "ART: Add pic flag to oat header store\n\nAdd the compile-time PIC flag to the oat-header key-value store.\nIgnore image offset and patch delta when loading PIC oat files.\n\nChange-Id: Ie1f1ef37125386a968228033d1e2bec565315510\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "d7a11bc4b207fbc1455f90873d99c95c4576667c",
      "tree": "af03e1277a3c20919e2f9aa0606a0cfa5ff3e4fb",
      "parents": [
        "8dcb9afc60972fddf1c6ee06cf7b272269d12766"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 17 10:32:58 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 17 10:32:58 2014 +0100"
      },
      "message": "Fix dex2oat cross-compilation.\n\nThe instruction set features was not correctly set when it was not\ngiven in the command line.\n\nChange-Id: I649cc077e7bbc830d281ae59af43e59fd0541c1b\n"
    },
    {
      "commit": "dddb8d891adad3f55308a725658134b6c9f5559b",
      "tree": "b1747dff4f90b9454b48dd6143ccf1ff84c6b4c7",
      "parents": [
        "b3f18cf7466f85e15c6b7f005f544867a4d6847a",
        "d6dee676acdd1ab0aa4e5ba6834ee7c40a6dd8ab"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 17 03:13:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 17 03:13:06 2014 +0000"
      },
      "message": "Merge \"dex2oat: Add a --compile-pic option\""
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "d6dee676acdd1ab0aa4e5ba6834ee7c40a6dd8ab",
      "tree": "727a86edd5ecbcdf60639b5dff5490e9573b5b56",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "message": "dex2oat: Add a --compile-pic option\n\nChange-Id: I80e03613e3b6ac079bcbc7e068bbaae760c364c9\n"
    },
    {
      "commit": "6e88ef6b604a7a945a466784580c42e6554c1289",
      "tree": "1e296564787b51514cf2eca5b732647c1a82912e",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:43:21 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\n"
    },
    {
      "commit": "7223d44a4893522e90d00bca38b119f710e55122",
      "tree": "c0bbe3f7b3cf04750b4b5359a03c2d63fc90978b",
      "parents": [
        "3f5b8a1e7dfdf010591e17396d1d126740c5706c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "message": "Switch to C++11 style [[noreturn]].\n\nAlso remove old comment about calls to Abort getting merged. We have few\nLOG(FATAL)s so merging is less of an issue. Also, recompiling with O0 and\nsimilar will avoid the optimization and we expect that for GDB debugging.\n\nChange-Id: I840dc6f4b8511294be0e117c634ec15b745e7be5\n"
    },
    {
      "commit": "647b1a86f518d8db0331b3d52a96392b7a62504b",
      "tree": "7370f795ef3c7fbdd2695d23bc6f8171f40f43f1",
      "parents": [
        "acfbbd4df2fc1c79a7102587bebf398f95b5e5de"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 11:02:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 12:26:02 2014 -0700"
      },
      "message": "Fix 2 new sets of clang compiler warnings.\n\nFix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.\nIn the case of -Wfloat-equal the current cases in regular code are deliberate,\nso the change is to silence the warning. For gtest code the appropriate fix is\nto switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.\nThe -Wmissing-noreturn warning isn\u0027t enabled due to a missing noreturn in\ngtest. This issue has been reported to gtest.\n\nChange-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8\n"
    },
    {
      "commit": "62d1ca3182a6cbb921799825f43ad36821233fd7",
      "tree": "54d9663f5ce10f41e95fe774d4e4841c1a78bbc3",
      "parents": [
        "63462448ca4e377074a10a4720aa22f71154dbe9"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Sep 03 17:24:56 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Oct 03 11:25:11 2014 -0700"
      },
      "message": "ART: Prepare for ELF64.\n\nOnly expose necessary interface in ElfFile, and move all details into template class ElfFileImpl.\n\nChange-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74\n"
    },
    {
      "commit": "f4da675bbc4615c5f854c81964cac9dd1153baea",
      "tree": "ea78bafc7ee543e11e7bd824ab40d5f5f3d82f9d",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 01 19:04:18 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:56:34 2014 +0100"
      },
      "message": "Implement method calls using relative BL on ARM.\n\nStore the linker patches with each CompiledMethod instead of\nkeeping them in CompilerDriver. Reorganize oat file creation\nto apply the patches as we\u0027re writing the method code. Add\nframework for platform-specific relative call patches in the\nOatWriter. Implement relative call patches for ARM.\n\nChange-Id: Ie2effb3d92b61ac8f356140eba09dc37d62290f8\n"
    },
    {
      "commit": "4f694baebb578b3ecc0c431f2a05c92efb9a50b3",
      "tree": "33c14cf4133ce5efa716721289a922dfa00f4803",
      "parents": [
        "f038ed9f031acb9c4fdf8a7f86e3c7ffad537e37"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 23 21:13:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 23 23:58:19 2014 -0700"
      },
      "message": "dex2oat should truncate files opened from file descriptors\n\nBug: 17622827\n\n(cherry picked from commit aa93129ca54cc897fdc2c8ddd0a7136f7b5632ed)\n\nChange-Id: I5467d488b4a57f7be35c72c16775df5bd5d69a52\n"
    },
    {
      "commit": "1b5a5dc82b9618d9deef62962954bfb9871a88d1",
      "tree": "f9a882292875d867040ba91b91125bebdc393e61",
      "parents": [
        "347409fdbdf8b9d3638beb7dbdb8c51b843bd899",
        "33cb94e5e5b50330fb9fbafe90d1a2a6bd026e2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 17 21:49:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 17 21:49:47 2014 +0000"
      },
      "message": "Merge \"ART: Sync oat file to disk before patching\""
    },
    {
      "commit": "33cb94e5e5b50330fb9fbafe90d1a2a6bd026e2f",
      "tree": "0b02b157d163b51e60f9a3e85b6d96b6ee27fa3a",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 16 16:40:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 17 14:46:48 2014 -0700"
      },
      "message": "ART: Sync oat file to disk before patching\n\nBug: 15567083, 17439961, 17510489, 17478752\n\n(cherry picked from commit 035592c51fee2995a3d90a9043f91a7a3128df2b)\n\nChange-Id: I828dc6775044b5050c2520eb097abe6a920fd3ee\n"
    },
    {
      "commit": "88157efc1e16707d4ae10775d4acb15121c50fe7",
      "tree": "37934ec3933ca89224a674b13f5dc3415a06786a",
      "parents": [
        "bace0378d720a1d2938ec7f6be17e2814671d20a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 12 10:29:53 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 11:02:37 2014 +0100"
      },
      "message": "Add the \"time\" compilation filter and output compilation stats.\n\nA \"time\" compiler filter means the compiler optimizes for\ncompile time.\n\nChange-Id: Id1a207ceb2d95f3548aae5e45d51b80695da2029\n"
    },
    {
      "commit": "daab38ca60c5b91787e29c87a161a2bb8c1b6f11",
      "tree": "0b155557e516ec1ff571c359af904e00d31d0c43",
      "parents": [
        "d2e5a6934ca1a07c9e1e87d3d0b21b63e1011934"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 18:38:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 22:34:11 2014 -0700"
      },
      "message": "ART: Make elf loading not abort\n\nChanges elf_file code to use less CHECKs and instead return error\nvalues (usually nullptr). This avoids aborts.\n\nIn oat_file, when loading an oat file fails, try to unlink at. If\nthis succeeds, on the next run we may compile again.\n\nBug: 17491333\n\n(cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a)\n\nChange-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af\n"
    },
    {
      "commit": "13b9f435d08ed269e7e5725ae829b1f61039a715",
      "tree": "88fecbb762a5be8c51f7bd06663a03177a5f187f",
      "parents": [
        "e1a851c161db964e42be642c6db470e289100f40"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 17:26:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 19:13:49 2014 -0700"
      },
      "message": "Increase dex2oat timeouts for debug builds\n\nShould fix the 056-const-string-jumbo test.\n\n(cherry picked from commit 0bff4f375d8013a4a59cf70b3427fb461a17e6de)\n\nChange-Id: I38d03fa7f981f0c067c52782e57938bbcbabef17\n"
    },
    {
      "commit": "bd25d4bff69e4775b7844d48630618b5ad8d3343",
      "tree": "b6837d257d9f292845c5a1d51a94e3be2f62e332",
      "parents": [
        "a9ffc181c61f5634753bf1039ed50bf22c800fde"
      ],
      "author": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Wed Jul 02 18:16:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 26 17:24:59 2014 -0700"
      },
      "message": "ART: Add capability for a pass to have options\n\nThis patch adds capability to have pass options. These are needed when a pass\nhas multiple flags that can be tweaked. The user is now allowed to pass those\noptions via command line.\n\nSince passes are treated as singletons and they are immutable, the overridden\noptions provided by user are set on the compilation unit. Doing this way also\nallows a selectivity system to tweak the option per compilation instead of\ndoing it globally (due to the single pass existing).\n\nThe following command line flags have been added:\n--print-pass-options - This prints all passes that have options along with\ntheir defaults.\n--pass-options\u003d - This is used to pass the overridden options in format of\nPassName:PassOption:PassOptionSetting\n\nChange-Id: Ib5156f5d2ff51a0c64c4ea0fa050bd2170663417\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "1ff3c98775a4577cf053dba9a0c2d5c21c07b298",
      "tree": "2d09c27c69678b53b4c9dc486024f3547efd4bca",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 02:30:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 16:08:05 2014 -0700"
      },
      "message": "Avoid use of std::string where we have const char*.\n\nRemoving the ClassHelper caused std::string creation for all calls to\nClass::GetDescriptor and a significant performance regression. Make the\nstd::string an out argument so the caller can maintain it and its life time\nwhile allowing GetDescriptor to return the common const char* case.\n\nDon\u0027t generate GC maps when compilation is disabled.\n\nRemove other uses of std::string that are occuring on critical paths.\nUse the cheaper SkipClass in CompileMethod in CompilerDriver.\nSpecialize the utf8 as utf16 comparison code for the common shorter byte\nencoding.\nForce a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing\ncode), add some LIKELYs.\n\nx86-64 host 1-thread interpret-only of 57 apks:\nBefore: 29.539s\nAfter: 23.467s\n\nRegular compile:\nBefore: 1m35.347s\nAfter: 1m20.056s\n\nBug: 16853450\nChange-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad\n"
    },
    {
      "commit": "f0d54278d02a69e659432fa1cf2e8a8b388565da",
      "tree": "1554c307b8e7c8ec24b6ab2d7b1a497b04663322",
      "parents": [
        "c5ec29d29a2044454900290e3ccc8f092ab201d1",
        "bf40ddb83e1ea05ba4bc101149cd79f0160c8996"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Aug 09 01:20:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 09 00:52:40 2014 +0000"
      },
      "message": "Merge \"ART: Turn on dex2oat watchdog on target\""
    },
    {
      "commit": "dfd3b47813c14c5f1607cbe7b10a28b1b2f29cbc",
      "tree": "b71dbae2ef905c08eb4cf615c8b44868cc314531",
      "parents": [
        "8b62dc0f993d0445401655fc274e5225498fa81c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 16:04:32 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 07 09:26:35 2014 -0700"
      },
      "message": "Add implicit checks for x86_64 architecture.\n\nThis combines the x86 and x86_64 fault handlers into one.  It also\nmerges in the change to the entrypoints for X86_64.\n\nReplaces generic instruction length calculator with one that only\nworks with the specific instructions we use.\n\nBug: 16256184\n\nChange-Id: I1e8ab5ad43f46060de9597615b423c89a836035c\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "81550fa92a02f6c656d13b12dc188fc73ac0fb39",
      "tree": "63603ae16f5a6979ff95c7ee08cb4e5436fc76e7",
      "parents": [
        "b30d8584bea83eb713b7a6b097225087d42828ff",
        "d5c78f44dc53ef9fda47a95ad3e9799be850c2b2"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 07 00:20:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 23:49:29 2014 +0000"
      },
      "message": "Merge \"AArch64: Implicit StackOverflow/NPE/Suspend checks.\""
    },
    {
      "commit": "b30d8584bea83eb713b7a6b097225087d42828ff",
      "tree": "ad081d110f36b541dcf1dd9d9e0ef75ee8b58ae5",
      "parents": [
        "9c597674fb99025a48476aff90de0fc81e44036a",
        "03f92f4e2ba358c701aa1c02a73372670d616e5a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 07 00:11:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 23:49:29 2014 +0000"
      },
      "message": "Merge \"Fix art build script.\""
    },
    {
      "commit": "d5c78f44dc53ef9fda47a95ad3e9799be850c2b2",
      "tree": "bc86b741193ad3487d9e0166cc324d99a200c738",
      "parents": [
        "a947ebc45d2785522b3c9d3295be68fd35d548be"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Jun 11 16:44:46 2014 +0100"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 06 12:42:45 2014 -0700"
      },
      "message": "AArch64: Implicit StackOverflow/NPE/Suspend checks.\n\nThis implements implicit stack overflow checks and null pointer exceptions\nfor AArch64.  Suspend checks are implemented but not switched on yet.\n\nChange-Id: I2eb076f2c0c9d94793d5a898fea49cf409b4eb66\nSigned-off-by: Stuart Monteith \u003cstuart.monteith@arm.com\u003e\n"
    },
    {
      "commit": "a62a588a9202f69e53fbeb3045ea8ea5ec2587f8",
      "tree": "afbbcca1eaa59d40fa94db6babeb2ea909777357",
      "parents": [
        "b5c5646b5ffd3d451af5e8d52b50743bf61d4c40"
      ],
      "author": {
        "name": "Jim_Guo",
        "email": "jim_guo@htc.com",
        "time": "Mon Apr 28 11:11:57 2014 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 04 22:27:52 2014 -0700"
      },
      "message": "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)\n\nRoot Cause:\n  The overlapped memory region will be unmapped by\n  (1) ~MemMap() of reservation MemMap (reserve) and\n  (2) ~MemMap() of \"reuse\" MemMap (segment).\n  Someone takes the memory region after (1) and it will be unmapped in (2).\n  So, SIGSEGV occurs when using the unmapped memory region.\n\nSolution:\n  Fixes this issue by skip unmap \"reuse\" MemMap in destructor.\n  And always create reservation MemMap before \"reuse\" MemMap. (It also solved\n  the fixupELF case which does not reserve the whole needed memory region).\n\nBug: 16486685\nChange-Id: I8f2538861d5c3fa7b9a04d2c3f516319cc060291\n"
    },
    {
      "commit": "03f92f4e2ba358c701aa1c02a73372670d616e5a",
      "tree": "a152910b11c380ce675f0404d4fbeddb18db3553",
      "parents": [
        "89c210bf418a152ccabfbbf853ddcce33aea450d"
      ],
      "author": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:29 2014 +0900"
      },
      "committer": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:56 2014 +0900"
      },
      "message": "Fix art build script.\n\nUse ART_BUILD_HOST_NDEBUG instead of ART_BUILD_NDEBUG.\n\nChange-Id: I1fcca4c52e79bad93dcdd750989f6223df2b0df4\nSigned-off-by: Junmo Park \u003cjunmoz.park@samsung.com\u003e\n"
    },
    {
      "commit": "cf4bf386ef3f527825c70e01130b9276da4f786a",
      "tree": "0f99e56bc53e150e070447410a66e8e5acca4a0a",
      "parents": [
        "9fbe946f49724ff7ae30da5d366a002d1e6addfa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 24 11:29:14 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 25 09:47:56 2014 -0700"
      },
      "message": "Tweaks to patchoat and other related things.\n\nRemoved some flags from patchoat that were poorly specified and fixed\nsome other issues with the relocation system.\n\nBug: 15358152\n\nChange-Id: Ia6d47b1a008f02373307d833ba45f00ea408d76f\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "bf40ddb83e1ea05ba4bc101149cd79f0160c8996",
      "tree": "577464850af88f5940c9ad982559b734f590e48f",
      "parents": [
        "aab012d6196bd29b3167963ec8acb0b9780672b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 17 10:18:46 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 17 10:18:46 2014 -0700"
      },
      "message": "ART: Turn on dex2oat watchdog on target\n\nActivates the watchdog on device.\n\nBug: 16364458\nChange-Id: Id7c86f5a345da35b97bc7fa1a95c86e8685f8fcd\n"
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "22f8e5c82d12951be38cd893426e13bee33fd69d",
      "tree": "f575655ba55315205b7a73f1e02773497913b157",
      "parents": [
        "946a55fa7aec5058d357b601ac3554e242cd1afa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 09 11:38:21 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 11 15:53:27 2014 -0700"
      },
      "message": "Revert \"Revert \"ART: Key-Value Store in Oat header\"\"\n\nThis reverts commit 452bee5da9811f62123978e142bd67b385e9ff82.\n\nHeap-allocate a couple of objects in dex2oat to avoid large frame\nsize.\n\nIncludes fixes originally in 100596 and 100605.\n\nChange-Id: Id51a44198c973c91f0a3f87b9d992a5dc110c6f8\n"
    },
    {
      "commit": "4e99b3d8955131f3fc71aa113f0fa71f0092cb6f",
      "tree": "bcaf4e5119a74c836d8598e064a20cdead757efb",
      "parents": [
        "5fa647d5f663033e4ed3d398aece1f8211d7f460"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jun 24 14:35:40 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jul 10 17:03:15 2014 +0200"
      },
      "message": "Add missing class initialization during compilation and tests\n\nAdds missing class initialization during compilation and tests, especially\njava.lang.Class. Otherwise, we\u0027d be able to execute code while the referring\nclass is not initialized or initializing.\n\nAlso adds mirror::Class::AssertInitializedOrInitializingInThread method to\ncheck class initialization when entering the interpreter: the called method\u0027s\ndeclaring class must either be initialized or be initializing by the current\nthread (other threads must be waiting for the class initialization to complete\nholding its lock). Note we only do this check in debug build.\n\nBump oat version to force compilation.\n\nBug: 15899971\nChange-Id: I9a4edd3739a3ca4cf1c4929dcbb44cdf7a1ca1fe\n"
    },
    {
      "commit": "3d14eb620716e92c21c4d2c2d11a95be53319791",
      "tree": "aadce4d6bb70e549b74b537c6f75617cf533576a",
      "parents": [
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "message": "Revert \"Add implicit null and stack checks for x86\"\n\nIt breaks cross compilation with x86_64.\n\nThis reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.\n\nChange-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7\n"
    },
    {
      "commit": "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf",
      "tree": "76901cff2cddd6d30cb7a4e83ad4e0c9bb673fe1",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:20:04 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 16:19:59 2014 -0700"
      },
      "message": "Add implicit null and stack checks for x86\n\nThis adds compiler and runtime changes for x86\nimplicit checks.  32 bit only.\n\nBoth host and target are supported.\nBy default, on the host, the implicit checks are null pointer and\nstack overflow.  Suspend is implemented but not switched on.\n\nChange-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a\n"
    },
    {
      "commit": "452bee5da9811f62123978e142bd67b385e9ff82",
      "tree": "3da88d3fb1bd2a03897aaac8bb015c12796d2cdf",
      "parents": [
        "c87d27b25994da8670d82a8f7bad6327b693bfff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "message": "Revert \"ART: Key-Value Store in Oat header\"\n\nBroke arm64 build.\n\nThis reverts commit c87d27b25994da8670d82a8f7bad6327b693bfff.\n\nChange-Id: I4c2ade295d2b5aa77fc3ad810e0e859629a5bf09\n"
    },
    {
      "commit": "c87d27b25994da8670d82a8f7bad6327b693bfff",
      "tree": "e8ad0fa224f050c5c3e3e30ccdc0912f28650f42",
      "parents": [
        "e8a30f37bf1530a80a7df17692dbe7a68764ac30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 26 16:11:07 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 08 12:14:38 2014 -0700"
      },
      "message": "ART: Key-Value Store in Oat header\n\nAllows the storage of string-string pairs in the oat header. The\nfirst significant use of this is storing the implicit-check flags,\nso that an oat file can be rejected if it doesn\u0027t agree with the\ncurrent runtime.\n\nBump the oat version as the header structure changes.\n\nChange-Id: I15a1c16886e6b8fa7b881c918c19c1efa5c7c00f\n"
    },
    {
      "commit": "53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c",
      "tree": "c0129ef3de7148dc6a114449b4f751a560283eb0",
      "parents": [
        "ae2efea4582df773f80be274bdc754f732b07df3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 12 11:26:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 07 15:19:58 2014 -0700"
      },
      "message": "Add patchoat tool to Art.\n\nAdd a new executable called patchoat to art. This tool takes already\ncompiled images and oat files and changes their base address, acting as\na cheap form of relocation.\n\nAdd a --include-patch-information flag to dex2oat and code to add\nrequired patch information to oat files created with the quick compiler.\n\nBug: 15358152\n\nChange-Id: Ie0c580db45bb14ec180deb84930def6c3628d97d\n"
    },
    {
      "commit": "44c5ee7a14bde25207032ac7c2427e8629b8ff42",
      "tree": "069f468c519807a6a7a75c86712a82772a260348",
      "parents": [
        "1a7d4bfeabc5987e95ff8e102f600360c264cf5a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 02 14:00:33 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 02 14:01:00 2014 +0100"
      },
      "message": "Relax limits for profiler based compilation options.\n\nChange-Id: I57a7b11588f5c5b5f12217239ecf58f59ae02e2b\n"
    },
    {
      "commit": "f9872f0b5f713af867b4e32e647a1b92f94fb01a",
      "tree": "5c975e4deba287222748389dc20c7be7f7c76e2f",
      "parents": [
        "7a59a24987beb52877b72b4e3f841e406413bb6d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 01 19:00:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 01 19:00:09 2014 -0700"
      },
      "message": "ART: Fix size error reported by ARM64 backend\n\nAlso removes a spurious LOG in dex2oat.\n\nChange-Id: Ia264fbfb3cb8d59978f3a61e814eb6940e272ece\n"
    },
    {
      "commit": "3470ab4011b5e18d590d5375e2f13a1e3bd69222",
      "tree": "79efa1be55a16a43447f7373f0aa8722828204d5",
      "parents": [
        "baa1323d66a05fd2d7b9c6c131b232945b0a4ebb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 18 10:35:45 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 27 16:46:29 2014 -0700"
      },
      "message": "Fixed gdb support and added some ElfFile functions\n\nFixed gdb support so that it would continue working even when debug\nsymbols or other sections are included in the elf file. Also made it\nactually read parts of the DWARF information so it should work even if\nthere are minor changes to how and where DWARF information is written\nout.\n\nAdded a dwarf.h file with the dwarf constants.\n\nAdded a FindSectionByName function, a FindDynamicSymbol function, and\nthe ability to specify the mmap protection and flags directly if we are\nmapping in the whole file.\n\nModified elf_writer_quick.cc to use the dwarf constants from dwarf.h.\n\nChange-Id: I09e15c425fab252b331a2e4719863552e8b6b137\n"
    },
    {
      "commit": "2db3e269e3051dacb3c8a4af8f03fdad9b0fd740",
      "tree": "9653675093f7c7af9f56ce133acb1476ddf42a5d",
      "parents": [
        "a64d728836712e9295ada7de44d8cc3165d595a8"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jun 25 16:02:55 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Jun 27 10:44:27 2014 -0700"
      },
      "message": "Fix quick mode bugs for Mips.\n\nThis patch enable quick mode for Mips and allows the emulator to boot.\nHowever the emulator is still not 100% functional. It still have problems\nlaunching some apps.\n\nChange-Id: Id46a39a649a2fd431a9f13b06ecf34cbd1d20930\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "833a48501d560c9fa7fc78ef619888138c2d374f",
      "tree": "add308298a5486d44caddea120cc9200dd70c38a",
      "parents": [
        "b849f6dd638fd1246724160cd5c01ab1a5ff33bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 18:46:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 25 19:34:58 2014 -0700"
      },
      "message": "ART: Native support for multidex\n\nNative support for zip files with multiple classesX.dex.\n\nWorks by explicitly looking for those files in ascending order. As\nthese files have no file system representation for themselves,\nintroduce synthetic dex locations: the name of the originating file\nplus a colon plus the name of the dex file, e.g., test.jar:classes2.dex.\n\nOpening a zip dex file will return all dex files in this way. This\nkeeps the changes to dex2oat minimal.\n\nTo hide multidex/synthetic names from the Java layer, let the handle\nof dalvik.system.DexFile refer to a vector of DexFile objects. When\nopening a location, test possible synthetic names and add them to the\nvector. Thus, the original multidex jar in the classpath will be\nassociated with all embedded dex files.\n\nChange-Id: I0de107e1369cbc94416c544aca3b17525c9eac8b\n"
    },
    {
      "commit": "f5997b4d3f889569d5a2b724d83d764bfbb8d106",
      "tree": "f0d3b3890a604a8b3c4c87c0f408f86df041690e",
      "parents": [
        "9658d24deaa9bd07781bfac860d2a6dd89066d55"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 20 10:37:54 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 24 13:45:05 2014 -0700"
      },
      "message": "More advanced timing loggers.\n\nThe new timing loggers have lower overhead since they only push into\na vector. The new format has two types, a start timing and a stop\ntiming. You can thing of these as brackets associated with a\ntimestamp. It uses these to construct various statistics when needed,\nsuch as: Total time, exclusive time, and nesting depth.\n\nChanged PrettyDuration to have a default of 3 digits after the decimal\npoint.\n\nExaple of a GC dump with exclusive / total times and indenting:\nI/art     (23546): GC iteration timing logger [Exclusive time] [Total time]\nI/art     (23546):   0ms InitializePhase\nI/art     (23546):   0.305ms/167.746ms MarkingPhase\nI/art     (23546):     0ms BindBitmaps\nI/art     (23546):     0ms FindDefaultSpaceBitmap\nI/art     (23546):     0ms/1.709ms ProcessCards\nI/art     (23546):       0.183ms ImageModUnionClearCards\nI/art     (23546):       0.916ms ZygoteModUnionClearCards\nI/art     (23546):       0.610ms AllocSpaceClearCards\nI/art     (23546):       1.373ms AllocSpaceClearCards\nI/art     (23546):     0.305ms/6.318ms MarkRoots\nI/art     (23546):       2.106ms MarkRootsCheckpoint\nI/art     (23546):       0.153ms MarkNonThreadRoots\nI/art     (23546):       4.287ms MarkConcurrentRoots\nI/art     (23546):     43.461ms UpdateAndMarkImageModUnionTable\nI/art     (23546):     0ms/112.712ms RecursiveMark\nI/art     (23546):       112.712ms ProcessMarkStack\nI/art     (23546):     0.610ms/2.777ms PreCleanCards\nI/art     (23546):       0.305ms/0.855ms ProcessCards\nI/art     (23546):         0.153ms ImageModUnionClearCards\nI/art     (23546):         0.610ms ZygoteModUnionClearCards\nI/art     (23546):         0.610ms AllocSpaceClearCards\nI/art     (23546):         0.549ms AllocSpaceClearCards\nI/art     (23546):       0.549ms MarkRootsCheckpoint\nI/art     (23546):       0.610ms MarkNonThreadRoots\nI/art     (23546):       0ms MarkConcurrentRoots\nI/art     (23546):       0.610ms ScanGrayImageSpaceObjects\nI/art     (23546):       0.305ms ScanGrayZygoteSpaceObjects\nI/art     (23546):       0.305ms ScanGrayAllocSpaceObjects\nI/art     (23546):       1.129ms ScanGrayAllocSpaceObjects\nI/art     (23546):       0ms ProcessMarkStack\nI/art     (23546):   0ms/0.977ms (Paused)PausePhase\nI/art     (23546):     0.244ms ReMarkRoots\nI/art     (23546):     0.672ms (Paused)ScanGrayObjects\nI/art     (23546):     0ms (Paused)ProcessMarkStack\nI/art     (23546):     0ms/0.610ms SwapStacks\nI/art     (23546):       0.610ms RevokeAllThreadLocalAllocationStacks\nI/art     (23546):     0ms PreSweepingGcVerification\nI/art     (23546):   0ms/10.621ms ReclaimPhase\nI/art     (23546):     0.610ms/0.702ms ProcessReferences\nI/art     (23546):       0.214ms/0.641ms EnqueueFinalizerReferences\nI/art     (23546):         0.427ms ProcessMarkStack\nI/art     (23546):     0.488ms SweepSystemWeaks\nI/art     (23546):     0.824ms/9.400ms Sweep\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       0.214ms SweepZygoteSpace\nI/art     (23546):       0.122ms SweepMallocSpace\nI/art     (23546):       6.226ms SweepMallocSpace\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       2.144ms SweepLargeObjects\nI/art     (23546):     0.305ms SwapBitmaps\nI/art     (23546):     0ms UnBindBitmaps\nI/art     (23546):   0.275ms FinishPhase\nI/art     (23546): GC iteration timing logger: end, 178.971ms\n\nChange-Id: Ia55b65609468f212b3cd65cda66b843da42be645\n"
    },
    {
      "commit": "b03a0ec8cf841bf49d2e146e140cb3ca21eca752",
      "tree": "d09086a1bb1b3b4a095fcbe342ce7396902738a3",
      "parents": [
        "fbd18f1923334f3208cfe6ba5f1d4f9eb421b063"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 24 10:27:40 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 24 12:15:46 2014 -0700"
      },
      "message": "Fixed ImageWriter timings not being written out.\n\nDuring host runs of dex2oat the timings for ImageWriter would not be\nwritten out.\n\nChange-Id: I74ce8bae724d1e732a6a1efb1c82804473081693\n"
    },
    {
      "commit": "ca3aabac5748c256c42839dd16e8c80a09d99a48",
      "tree": "d96cb1643a4e544289a1a3b31d35cd24a7126660",
      "parents": [
        "9462a31caedefac3e04bd4aa5088e050ed188b30"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Jun 23 14:46:53 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Jun 23 15:24:55 2014 -0700"
      },
      "message": "Fix implicit check option handling for non-cross-compiles\n\nThis fixes an issue where the compiler was not being told to\ngenerate implicit checks but the runtime was expecting them.\n\nBug: 15747876\nChange-Id: I65e7475bac245c44d5094eb666d67bc1af327ab1\n"
    },
    {
      "commit": "5c1ad33701beac62afbfb144bb6f52755503c9f2",
      "tree": "2818a4e605cdebf75b4fde7c8ada87a6c5341dff",
      "parents": [
        "b493c2983016a78de498c3a3aef302b1353dca99",
        "887235845e203fce046c17120e86d4cac4c56035"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Jun 21 23:15:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 21 03:13:40 2014 +0000"
      },
      "message": "Merge \"Use command line android root in dex2oat to find image.\""
    }
  ],
  "next": "9cad72d80603b3ff59be66b2cffd3f6dcbd9947f"
}
