)]}'
{
  "log": [
    {
      "commit": "49b7134f29439326d3d20bfea7bfde0e360c320c",
      "tree": "eb78128b431d81e55668fa4d79ed203349417bdb",
      "parents": [
        "a5511adcd42bfef442ac6e4990bde26366253bbf"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 15 16:24:24 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon May 18 12:44:14 2015 -0700"
      },
      "message": "Enable tlab by default for the read barrier config.\n\nBug: 12687968\nChange-Id: I2ac930386aebe5aaacbccf1b950c376df0d9c81b\n"
    },
    {
      "commit": "73a3fb3d884f14e5de488bc679da4ce5ac7700be",
      "tree": "23cefb49a93447538480fb567a18f1965794c50b",
      "parents": [
        "50a4d671268cff5041fb09dcb9f64515dd809e4a",
        "10d6886c9ce3ed87431cf10d376a69c23950fa61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 17:23:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 17:23:36 2015 +0000"
      },
      "message": "Merge \"Disable parallel GC by default\""
    },
    {
      "commit": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "10d6886c9ce3ed87431cf10d376a69c23950fa61",
      "tree": "52cfc18e941d78e480c5fdacda57721083b5e51f",
      "parents": [
        "a76a08fed88bd081bcc4d240f1ba3472a2acbbab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 14:21:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 14:42:50 2015 -0700"
      },
      "message": "Disable parallel GC by default\n\nNot using parallel GC seems to reduce avg pauses by ~0.1s on\nEvaluateAndApplyChanges. Avoiding creating the thread pool should\nhelp app launch slightly and reduce memory ussage.\n\nChange-Id: Iebec2a17701c76e4145b41d7c0b4f6dd17806efa\n"
    },
    {
      "commit": "9106e52a47042043edfb2a0fea05f28d52903c47",
      "tree": "f0b9980d0f6de6b73c734afc47b50c6bd3d8173b",
      "parents": [
        "dcff612c3a6e1427749771c4559f198fa480f709"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 14:54:03 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 17:42:52 2015 -0700"
      },
      "message": "ART: Set default prune counter to 10\n\nBy default, prune cache at boot after ten failed boots.\n\nBug: 19983101\nChange-Id: Ib88f807e0082d71292c14c7af38e02cca5a5602c\n"
    },
    {
      "commit": "fc06816cc25f80cc6c4c5d002e5d3bced242a9ee",
      "tree": "05c1a88f5e26fc72a14d70b27dc5413155f1f3f7",
      "parents": [
        "d24ba2c44c76a2b2dd13aafe8f7981c15be31a98",
        "785049f8083e56e88dfeab5ff74fb3817f9854e3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 19:45:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 19:45:32 2015 +0000"
      },
      "message": "Merge \"Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\""
    },
    {
      "commit": "785049f8083e56e88dfeab5ff74fb3817f9854e3",
      "tree": "ab06a7fb4acb2ed73eed4b58327ba485f61560c4",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 18 10:08:57 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 11:38:54 2015 -0700"
      },
      "message": "Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\n\n  Add paths to .apk to LD_LIBRARY_PATH to enable\n  bionic linker\u0027s \"open from zip-file\" feature.\n\nBug: 8076853\nChange-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1\n"
    },
    {
      "commit": "79bd2bfa8f1602067fd381834206ed6b7e73a9be",
      "tree": "8f2c7da90cb6a867bac53bb0d7e180f46d55adf9",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 10:28:34 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 10:28:34 2015 -0700"
      },
      "message": "Make it possible to enable tlab with a build parameter.\n\nFor testing.\n\nChange-Id: I4d06a4db733b7fa09105f068028483cf88db7925\n"
    },
    {
      "commit": "a4885cbaafd35fe9c60eb6cd95e41e2c86f54f66",
      "tree": "6afaa296fc2f6c4c7c1ce35a3d36ef911096764c",
      "parents": [
        "54a8cc689dc23f346c9aac0d5fc6f47e61df8cad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 15:38:54 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 15:42:44 2015 -0700"
      },
      "message": "Add way to print JIT related info at shutdown\n\nAdded a runtime option called -XX:DumpJITInfoOnShutdown with prints\nvarious interesting JIT statistics during the shutdown of the runtime\nif enabled.\n\nExample of running EvaluateAndApplyChanges with the option:\nI art     : Code cache size\u003d427KB data cache size\u003d84KB num methods\u003d1598\nI art     : Start Dumping histograms for 1598 iterations for JIT timings\nI art     : Compiling: Sum: 727.850ms 99% C.I. 135us-4402us Avg: 455.475us Max: 15567us\nI art     : Verifying: Sum: 191.074ms 99% C.I. 19us-1450.500us Avg: 119.570us Max: 5142us\nI art     : TrimMaps:  Sum: 62.053ms 99% C.I. 13us-199.374us Avg: 38.831us Max: 10058us\nI art     : MakeExecutable:  Sum: 11.153ms 99% C.I. 4us-47us Avg: 6.979us Max: 47us\nI art     : Initializing:  Sum: 7.991ms 99% C.I. 1us-49.781us Avg: 5us Max: 4852us\nI art     : Done Dumping histograms\n\nBug: 17950037\nChange-Id: I23538b24f947e5f6934f55579b8baa9d806eb3d5\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "f548c54c69443ba94fcee89daca6f5f499d71e9a",
      "tree": "aff0f707cb27e303d3b9de53f961bf48e38ad5be",
      "parents": [
        "9e87baff2eee8e8ae0700c7391ca4447dbe142b0",
        "a5ca888d715cd0c6c421313211caa1928be3e399"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:11:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 08:11:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add JIT\"\""
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "4fa1a274024067e160a60d0a77124e95dca980e1",
      "tree": "61dd41429b6b2ed29239f0c619c0e7ea058fd4ac",
      "parents": [
        "40c99de1fd26f9ba6fae20a01175240b96fc7443",
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 01:29:47 2015 +0000"
      },
      "message": "Merge \"Add JIT\""
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "24e04aa68c575d349eac0d9d09aab9bd3106ef94",
      "tree": "e6a14642cc4a4b409fe98a696b17968c6d0a65f4",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Sep 12 12:03:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 15:43:46 2015 -0800"
      },
      "message": "ART: Allow the execution to stop if the compilation fails via an option\n\nThe current implementation continues the execution of the application if\ndex2oat fails by relying on the interpreter.\n\nThis patch adds a -Xno-dex-file-fallback option to stop the default behavior.\nThis can be used two-fold.\n\nFirst, one can enforce that a runtime only starts with a boot image. A\nfollow-up patch will ensure that dex2oat (for apps) and patchoat in general\nrequest that mode and close gracefully otherwise.\n\nSecond, this can be used for testing and debugging purposes, as it ensures\nthat compiler failures \u0026 aborts are not silently ignored.\n\nAdd testing.\n\nBug: 19100590\nChange-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "5a2be3f40125af8b25fbbd9d55dc968168c76ed7",
      "tree": "070b920e71c927f112a6922f5e7b59668392f762",
      "parents": [
        "d98ff78976696fdde1e7868d4687719a0439544b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 16 13:51:51 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Feb 21 11:19:07 2015 +0000"
      },
      "message": "Implement a simple count based boot marker.\n\nWe write the number of failed boots to the marker and only\nprune the dalvik cache if the number of consecutive failed\nboots is higher than a predefined threshold.\n\nNote that the code is forgiving of errors related to boot\nmarkers; we continue the boot process even if we\u0027re unable\nto create / write or flush the boot marker.\n\nbug: 19360096\nChange-Id: Ia17c3b783318ddf43c9199d0f7f09c54a4176667\n"
    },
    {
      "commit": "f360ad091bdc1484db2e4e0f0492f620402dbf58",
      "tree": "18b356225ef42bdc3a50a62a5f7975872c9742c6",
      "parents": [
        "4ba405483177cf346211d43d97892bae6ff14119"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "message": "Make UseTLAB a bool flag.\n\nThis would make it easier to override its default value at build time.\n\nChange-Id: I643fe1afaf492f0443dc01df0c9a62bb3fa025d9\n"
    },
    {
      "commit": "aaebaa0121be3b9d9f13630585304482cbcaeb4b",
      "tree": "0f47257e497fdf920c8d703d2d00adab53934a76",
      "parents": [
        "babecc483276b46d84cb83d4f01e577228827305"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jan 26 10:55:53 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 13:29:19 2015 -0800"
      },
      "message": "art: Refactor RuntimeOptions/ParsedOptions\n\nRefactor the RuntimeOptions to be a\ntype-safe map (VariantMap, see runtime_options.h) and the ParsedOptions\nto delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h).\n\nThis is the start of a command line parsing refactor, and may include\nmore in the future (dex2oat, patchoat, etc).\n\nFor more details of the command line parsing generator usage see cmdline/README.md\n\nChange-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563\n"
    }
  ]
}
